class: left, middle, inverse, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ # Hacia una bioestadística más completa
### Br. Miguel Rojas <p style="font-size: 12px;"><em>Imagen de la portada: <a href="https://unsplash.com/es/fotos/palos-de-madera-verdes-y-marrones-I-0OS5iRp0Q" style="color: #D6D6D6; text-decoration: underline;">Markus Spiske</a> en Unsplash. Editado.</em></p> ] --- class: middle, animate__animated, animate__fadeIn ## Sobre mí
.pull-left[ ### Formación - Estudiante de biología (Facultad de Ciencias, UCV). - 5 años de experiencia en
. ### Experiencia - Preparador de Laboratorio de Ecología I (I-2023 y I-2024) y Laboratorio de Ecología II (II-2024) - Asesoramiento académico particular en estadística. ] .pull-right[ ### Otros talleres dictados - [Iniciación en R para científicos (2022).](https://itsmiguelrojas.github.io/IntroRScientist/) ### Contacto - [LinkedIn
: itsmiguelrojas](https://www.linkedin.com/in/itsmiguelrojas/) - [GitHub
: itsmiguelrojas](https://github.com/itsmiguelrojas/) - [Kaggle
: itsmiguelrojas](https://www.kaggle.com/itsmiguelrojas/) ] --- class: justify, middle, animate__animated, animate__fadeIn ## Contenido (más o menos...)
1. Consideraciones iniciales. 2. Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors y prueba de normalidad de Shapiro-Wilk. 3. Prueba de Levene para homogeneidad de varianzas. 4. Análisis de varianza (ANOVA) y prueba *post hoc* de Tukey. 5. Pruebas no paramétricas: - Prueba de suma de rangos de Wilcoxon de una sola muestra. - Prueba de Mann-Whitney-Wilcoxon para muestras independientes. - Prueba de Wilcoxon para rangos signados. - Prueba de Kruskal-Wallis. 6. Regresión lineal, prueba de hipótesis de correlación y prueba de hipótesis de la pendiente. 7. Remuestreo por bootstrapping. --- class: justify, middle, animate__animated, animate__fadeIn ## ¿Qué vamos a aprender?
- Evaluar y explorar inicialmente los datos para formular las hipótesis adecuadas. - Verificar la normalidad de los datos y aprender a aplicar la prueba de Lilliefors y la prueba de Shapiro-Wilk para determinar si un conjunto de datos sigue una distribución normal. - Evaluar la homogeneidad de varianzas de varios grupos mediante la prueba de Levene. - Realizar un análisis de varianza para comparar las medias de tres o más grupos y hacer una prueba *post hoc* para identificar cuáles son las diferencias entre los grupos. - Poner a prueba las hipótesis cuando los datos no cumplen los supuestos de las pruebas paramétricas. - Comprender los conceptos básicos de la regresión lineal, aprender a ajustar un modelo de regresión y a interpretar los resultados, incluyendo los coeficientes y el `\(R^2\)`. - Calcular y interpretar los coeficientes de correlación de Pearson y Spearman para evaluar la relación entre dos variables. - Comprender el concepto de bootstrapping y su utilidad en la estimación de intervalos de confianza y p-valores. --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Consideraciones iniciales ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Al momento de realizar un experimento o un estudio observacional, es importante recolectar los datos que de este puedan surgir, bien sea mediante instrumentos de medición o por observación directa. Esto nos permitirá después justificar la razón de nuestro estudio. .pull-left[ <img src="img/wood2007.jpeg" style="border: 1px black solid;"> ] .pull-right[ Evaluación histológica de secciones sagitales de tejido uterino de ratón adulto teñidas con hematoxilina y eosina derivadas de las cuatro etapas del ciclo estral natural (A-D). Niveles séricos de 17β-estradiol y progesterona en función de la etapa del ciclo estral (E y F). Ancho uterino en función de los niveles séricos de 17β-estradiol y progesterona (G y H). Ancho uterino en función de la etapa del ciclo estral (I). Imagen tomada y modificada de: Wood, G. A., Fata, J. E., Watson, K. L. M. y Khokha, R. (2007). Circulating hormones and estrous stage predict cellular and stromal remodeling in murine uterus. *Reproduction*, **133(5)**: 1035-1044. DOI: [10.1530/REP-06-0302](https://doi.org/10.1530/REP-06-0302). ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Al momento de realizar un experimento o un estudio observacional, es importante recolectar los datos que de este puedan surgir, bien sea mediante instrumentos de medición o por observación directa. Esto nos permitirá después justificar la razón de nuestro estudio. .pull-left[ <img src="img/wood2007_2.jpeg" style="border: 1px black solid;"> ] .pull-right[ Proliferación de tipos celulares en el útero de ratón durante el ciclo estral. Estos fueron marcados con anti-PCNA (anti antígeno nuclear de proliferación celular). Imagen tomada de: Wood, G. A., Fata, J. E., Watson, K. L. M. y Khokha, R. (2007). Circulating hormones and estrous stage predict cellular and stromal remodeling in murine uterus. *Reproduction*, **133(5)**: 1035-1044. DOI: [10.1530/REP-06-0302](https://doi.org/10.1530/REP-06-0302). ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Al momento de realizar un experimento o un estudio observacional, es importante recolectar los datos que de este puedan surgir, bien sea mediante instrumentos de medición o por observación directa. Esto nos permitirá después justificar la razón de nuestro estudio. .pull-left[ <img src="img/longitud_peces.png" style="border: 1px black solid;"> ] .pull-right[ Distribución de la longitud estándar para tres especies de peces recolectadas en la Playa Los Totumos. Imagen tomada de: Rojas, M. y Torrenegra, Y. (2024). Análisis estomacal de una comunidad íctica en un ecosistema acuático costero y determinación de tramas tróficas en dos ecosistemas propuestos. Universidad Central de Venezuela, Facultad de Ciencias, Escuela de Biología, Departamento de Ecología, Laboratorio de Ecología II (Animal). Caracas, Venezuela. ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Al momento de realizar un experimento o un estudio observacional, es importante recolectar los datos que de este puedan surgir, bien sea mediante instrumentos de medición o por observación directa. Esto nos permitirá después justificar la razón de nuestro estudio. .pull-left[ <img src="img/contraccion_simple.png" style="border: 1px black solid;"> ] .pull-right[ Señal registrada en el osciloscopio digital de la máxima contracción simple isométrica del músculo gastrocnemio de *Rhinella marina*. Imagen tomada de: Figueroa, B. y Rojas, M. (2025). Análisis de las respuestas contráctiles isométricas en la preparación ciático-gastrocnemio de *Rhinella marina*. Universidad Central de Venezuela, Facultad de Ciencias, Escuela de Biología, Departamento de Zoología, Laboratorio de Fisiología Animal. Caracas, Venezuela. ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Es crucial realizar una exploración inicial de los datos recolectados, con el fin de describir patrones generales que muestren el comportamiento. Esto puede lograrse por medio del cálculo de estimadores (promedio, varianza, mediana, moda, etc.) y mediante análisis de gráficos. La exploración inicial de los datos permite generar hipótesis, que luego pueden ser sometidas a prueba mediante las pruebas estadísticas adecuadas. Tomado de [Wood y col. (2007)](https://doi.org/10.1530/REP-06-0302): > #### Statistical analysis > > To assess whether differences in the indices for proliferation, apoptosis, basement membrane integrity, and mRNA levels observed at specific stages of the estrous cycle were statistically significant, an ANOVA test was performed on the entire group. If the entire group was significant at P < 0.05, then pairwise comparisons of stage-specific mean values were performed using Fisher’s least significant difference test (LSD). Stages were considered significant if they were in a group that passed the ANOVA test and significantly different from another stage as determined by the LSD test. All values were expressed as the mean ± s.e.m. To determine the degree of linear relationship between various indices, analysis was performed on all mice in the study regardless of estrous stage, and the coefficient of correlation (r) was calculated. The degrees of freedom for all correlation analyses were 31 (since two mice were omitted from analyses related to hormone levels due to serum sample problems). La interpretación de hallazgos estadísticos debe ser capaz de diferenciar entre **significancia** y **relevancia**, ya que un resultado puede ser estadísticamente significativo sin tener necesariamente un impacto biológico práctico. --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Pruebas de normalidad ] --- class: justify, animate__animated, animate__fadeIn ## Forma de una distribución .pull-left[ Normalmente, cuando se conocen todos los datos de una población (o esta es lo suficientemente grande), es fácil visualizar su distribución. Por ejemplo, visualicen esta distribución: <!-- --> ] .pull-right[ Estos datos representan la distribución del peso total de abulones (*Haliotis* sp.) para 4177 individuos de la especie, cuya mediana, promedio y desviación estándar son respectivamente: ``` ## Mediana Promedio Des. estándar ## 0.7995 0.8287 0.4903 ``` Con toda esta información, es fácil darnos cuenta de que los datos están **sesgados**. Otra manera de verlo es a través del valor de la asimetría, que se calcula como: `\(\text{Asimetría}=\frac{\sum\limits_{i=1}^{N}\left(X_{i}-\bar{X}\right)^3}{(N)s^3}=\frac{261.3577}{(4177)(0.1178871)}=0.5308\)` ] --- class: justify, animate__animated, animate__fadeIn ## Forma de una distribución .pull-left[ Ahora observemos cómo se verían los datos si fuesen normales, utilizando los valores de promedio y desviación estándar, y comparando la distribución normal generada contra la verdadera distribución: <!-- --> ] .pull-right[ Las comparaciones visuales siempre son una buena manera de inspeccionar nuestros datos para verificar la normalidad. No obstante, existen pruebas de hipótesis destinadas para este propósito. Estas pruebas pueden ser complementadas con un análisis visual. La mayoría (si no todas) las hipótesis de estas pruebas son por lo general: `\(H_{0}:\text{Los datos siguen una distribución normal.}\\H_{a}:\text{Los datos no siguen una distribución normal.}\)` <p style="color: #00F;">Veamos dos de estas pruebas →</p> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors .pull-left[ **1** Se calculan la media aritmética y la desviación estándar de una muestra aleatoria de tamaño `\(n\)`: `\(\bar{X}=\frac{\sum\limits_{i=1}^{n}X_{i}}{n}\\s=\sqrt{\frac{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^2}{n-1}}\)` **2** Se ordenan los datos de forma ascendente. **3** Se estandarizan los datos. **4** Se formulan las hipótesis estadísticas: `\(H_{0}:\text{Los datos siguen una distribución normal.}\\H_{a}:\text{Los datos no siguen una distribución normal.}\)` **5** Se calcula el estadítico de prueba: `\(D_{n}=max|F(X)-S_{n}(X)|\)` ] .pull-right[ en donde `\(F(X)\)` es la función de distribución normal acumulativa, y `\(S_{n}(X)\)` es la probabilidad de obtener valores menores o iguales a `\(X_{i}\)` **6** Se busca el valor de `\(W_{\alpha;\: n}\)` crítico en la [tabla de Lilliefors](https://real-statistics.com/statistics-tables/lilliefors-test-table/). **7** Hacer el contraste: `\(D_{n} \geq W_{\alpha;\: n}\)` Si esta relación se cumple, decimos que **no hay suficiente evidencia para aceptar la hipótesis nula**, y tenemos que ir en favor de la **hipótesis alternativa**. En ese sentido, se dice que **los datos no siguen una distribución normal**. <p style="color: #00F;">Veamos un ejemplo...</p> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo Tomamos datos aleatorios del peso total de los abulones (por ejemplo, 50 muestras) y los ordenamos de menor a mayor: ``` ## [1] 0.0240 0.0320 0.1045 0.1160 0.1270 0.1440 0.2235 0.2625 0.3245 0.3400 ## [11] 0.4130 0.4250 0.4400 0.4475 0.4555 0.4585 0.4600 0.4675 0.4870 0.5410 ## [21] 0.5470 0.5550 0.5775 0.5780 0.5910 0.6015 0.6445 0.7750 0.7805 0.8050 ## [31] 0.8160 0.8285 0.8745 0.9045 0.9065 0.9810 1.0005 1.0105 1.0130 1.0270 ## [41] 1.1185 1.2780 1.2905 1.3005 1.3460 1.3485 1.6195 1.7860 1.8385 2.5500 ``` Calculamos su promedio y desviación estándar: `\(\bar{X}=\frac{0.0240+0.0320+ \dots +2.5500}{50}=\frac{37.586}{50}=0.7517\\s=\sqrt{\frac{(0.0240-0.7517)^2+(0.0320-0.7517)^2+ \dots +(2.5500-0.7517)^2}{50-1}}=\sqrt{\frac{12.91892}{49}}=0.5135\)` Ahora, se estandarizan los datos mediante la fórmula: `\(Z=\frac{X_{i}-\bar{X}}{s}\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo De esta manera, obtenemos lo siguiente: ``` ## [1] -1.417 -1.402 -1.260 -1.238 -1.217 -1.184 -1.029 -0.953 -0.832 -0.802 ## [11] -0.660 -0.636 -0.607 -0.592 -0.577 -0.571 -0.568 -0.554 -0.516 -0.410 ## [21] -0.399 -0.383 -0.339 -0.338 -0.313 -0.293 -0.209 0.045 0.056 0.104 ## [31] 0.125 0.150 0.239 0.298 0.301 0.447 0.485 0.504 0.509 0.536 ## [41] 0.714 1.025 1.049 1.069 1.157 1.162 1.690 2.014 2.117 3.502 ``` Con estos valores de `\(Z\)`, se buscan los valores de `\(F(X)\)` en la tabla normal: ``` ## [1] 0.0782 0.0805 0.1037 0.1078 0.1119 0.1183 0.1518 0.1704 0.2027 0.2113 ## [11] 0.2547 0.2623 0.2719 0.2768 0.2820 0.2840 0.2850 0.2900 0.3031 0.3408 ## [21] 0.3451 0.3508 0.3672 0.3676 0.3771 0.3849 0.4173 0.5181 0.5223 0.5413 ## [31] 0.5498 0.5594 0.5945 0.6170 0.6185 0.6724 0.6860 0.6929 0.6946 0.7041 ## [41] 0.7625 0.8473 0.8530 0.8574 0.8764 0.8774 0.9545 0.9780 0.9829 0.9998 ``` Buscamos también los valores de `\(S_{n}\)`: ``` ## [1] 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 0.22 0.24 0.26 0.28 0.30 ## [16] 0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 ## [31] 0.62 0.64 0.66 0.68 0.70 0.72 0.74 0.76 0.78 0.80 0.82 0.84 0.86 0.88 0.90 ## [46] 0.92 0.94 0.96 0.98 1.00 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo Ahora, se calcula cada valor de `\(|F(X)-S_{n}(X)|\)`: ``` ## [1] 0.0582 0.0405 0.0437 0.0278 0.0119 0.0017 0.0118 0.0104 0.0227 0.0113 ## [11] 0.0347 0.0223 0.0119 0.0032 0.0180 0.0360 0.0550 0.0700 0.0769 0.0592 ## [21] 0.0749 0.0892 0.0928 0.1124 0.1229 0.1351 0.1227 0.0419 0.0577 0.0587 ## [31] 0.0702 0.0806 0.0655 0.0630 0.0815 0.0476 0.0540 0.0671 0.0854 0.0959 ## [41] 0.0575 0.0073 0.0070 0.0226 0.0236 0.0426 0.0145 0.0180 0.0029 0.0002 ``` De aquí, se elige el mayor valor de todos, el cual es: ``` ## [1] 0.1351 ``` Luego, se busca el valor crítico de `\(W_{\alpha;\:n}\)` para `\(n=50\)` y `\(\alpha=0.05\)` en la [tabla de Lilliefors](https://real-statistics.com/statistics-tables/lilliefors-test-table/), el cual es 0.1246. De esta forma, se contrastan ambos valores: `\(0.1351 \geq 0.1246\)` Lo cual claramente es cierto. Por lo tanto, no hay suficiente evidencia para aceptar `\(H_{0}\)`, y debemos optar a favor de `\(H_{a}\)`. Por lo tanto, concluimos que los datos **no siguen una distribución normal**. --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo Otra manera de ver esto es a través del p-valor: ``` ## ## Lilliefors (Kolmogorov-Smirnov) normality test ## ## data: abalone.muestra ## D = 0.13507, p-value = 0.0232 ``` Esto es fácilmente lograble a través de herramientas computacionales y lenguajes de programación, como R o Python. Esta clase de salidas las veremos a lo largo de la presentación. <div class="img-container"> <img src="https://mattsosna.com/images/r-python.png" width="700px"> </div> --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Shapiro-Wilk .pull-left[ **1** Se calculan la media aritmética y la desviación estándar de una muestra aleatoria de tamaño `\(n\)`: `\(\bar{X}=\frac{\sum\limits_{i=1}^{n}X_{i}}{n}\\s=\sqrt{\frac{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^2}{n-1}}\)` **2** Se ordenan los datos de forma ascendente. **3** Se calcula la suma de los cuadrados de las diferencias (SS): `\(SS=\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^2\)` **4** Se formulan las hipótesis estadísticas: `\(H_{0}:\text{Los datos siguen una distribución normal.}\\H_{a}:\text{Los datos no siguen una distribución normal.}\)` ] .pull-right[ **5** Se calcula `\(b\)` como se indica a continuación, tomando las ponderaciones `\(a_{i}\)` de la tabla de coeficientes (Tabla 1) en las [tablas de Shapiro-Wilk](https://real-statistics.com/statistics-tables/shapiro-wilk-table/): `\(b=\sum\limits_{i=1}^{m}a_{i}\left(X_{n+1-i}-X_{i}\right)\)` Si `\(n\)` es par, entonces `\(m=n/2\)`. Si `\(n\)` es impar, entonces `\(m=(n-1)/2\)`. **6** Se calcula el estadístico de prueba: `\(W=\frac{b^2}{SS}\)` **7** Se busca en la Tabla 2 ([tablas de Shapiro-Wilk](https://real-statistics.com/statistics-tables/shapiro-wilk-table/)) el valor que más se acerque a `\(W\)`, el cual indica el **p-valor** de la prueba. Para un `\(\alpha=0.05\)`, si este valor es mayor o igual, se acepta `\(H_{0}\)`. Si no, se opta por `\(H_{a}\)`. <p style="color: #00F;">Vamos con el ejemplo...</p> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Shapiro-Wilk - Ejemplo Tomemos los mismos datos de antes (peso total de abulones), ordenados de forma ascendente: ``` ## [1] 0.0240 0.0320 0.1045 0.1160 0.1270 0.1440 0.2235 0.2625 0.3245 0.3400 ## [11] 0.4130 0.4250 0.4400 0.4475 0.4555 0.4585 0.4600 0.4675 0.4870 0.5410 ## [21] 0.5470 0.5550 0.5775 0.5780 0.5910 0.6015 0.6445 0.7750 0.7805 0.8050 ## [31] 0.8160 0.8285 0.8745 0.9045 0.9065 0.9810 1.0005 1.0105 1.0130 1.0270 ## [41] 1.1185 1.2780 1.2905 1.3005 1.3460 1.3485 1.6195 1.7860 1.8385 2.5500 ``` Ya conocemos su promedio y desviación estándar: `\(\bar{X}=0.7517\\s=0.5135\)` Como ya conocemos el valor de `\(s\)`, es fácil despejar para encontrar `\(SS\)`: `\(SS=s^2 \times (n-1)=0.5135^2 \times (50-1) = 12.91892\)` Ahora, se calcula el valor de `\(b\)`: `\(m=50/2=25\\b=0.3751\left(2.5500-0.0240\right)+0.2574\left(1.8385-0.0320\right)+ \dots +0.0035\left(0.6015-0.5910\right)=3.452476\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Shapiro-Wilk - Ejemplo Ahora, solo debemos dividir `\(b^2\)` entre `\(SS\)` para hallar el estadístico de prueba `\(W\)`: `\(W=\frac{3.452476^2}{12.91892}=0.922646\)` A continuación, buscamos el valor aproximado en las [tablas de Shapiro-Wilk](https://real-statistics.com/statistics-tables/shapiro-wilk-table/), específicamente en la Tabla 2: <div style="height: 150px; overflow: scroll;"> <img src="https://real-statistics.com/wp-content/uploads/2012/12/image3742.png"> </div> Como vemos, el valor ni siquiera aparece reflejado en la tabla cuando `\(n=50\)`, por lo que el p-valor < 0.01. Por lo tanto, concluimos que no tenemos suficiente evidencia para aceptar `\(H_{0}\)`, por lo que los datos **no siguen una distribución normal**. Podemos calcular el p-valor a través de R: ``` ## ## Shapiro-Wilk normality test ## ## data: abalone.muestra ## W = 0.92265, p-value = 0.002943 ``` --- class: justify, animate__animated, animate__fadeIn ## ¿Lilliefors o Shapiro-Wilk? ¿Cuál prueba es mejor? Todo depende del criterio con que se use, pero en general: | Característica | Prueba de normalidad de Lilliefors | Prueba de normalidad de Shapiro-Wilk | |:---:|:---|:---| | Base estadística | Una modificación de la prueba de Kolmogorov-Smirnov (KS). Compara la función de distribución acumulada (CDF) empírica de la muestra con una distribución normal teórica, donde la media y la desviación estándar se estiman a partir de los datos, mediante un estadístico `\(D_{n}\)`. | Una prueba específica de normalidad que compara los valores muestrales ordenados con los estadísticos de orden esperado de una distribución normal. Calcula un estadístico `\(W\)`, que es el cociente de dos estimaciones de varianza. | |Supuestos|Muestras aleatorias independientes, datos continuos.|Muestras aleatorias independientes, datos continuos.| | Sensibilidad | Generalmente menos potente, especialmente para detectar desviaciones de la normalidad relacionadas con la curtosis. | Considerada ampliamente como la prueba de normalidad más potente, especialmente para muestras de tamaño pequeño a moderado. Es muy sensible a una amplia gama de desviaciones de la normalidad, incluyendo asimetría y curtosis. | | Tamaño de la muestra | Tradicionalmente se utiliza para muestras más pequeñas, pero se recomienda su uso con tamaños de muestra superiores a 50 donde la prueba de Shapiro-Wilk puede no estar disponible. | Comúnmente utilizado para tamaños de muestra pequeños a medianos (`\(n<50\)`). Algunos paquetes de software estadístico restringen su uso para muestras con `\(n \leq 5000\)`, lo cual corresponde a la [prueba de Shapiro-Wilk extendida](https://real-statistics.com/tests-normality-and-symmetry/statistical-tests-normality-symmetry/shapiro-wilk-expanded-test/). | | Uso | Cuando el tamaño de la muestra sea grande (`\(n > 50\)`) o cuando el software no ofrezca la prueba de Shapiro-Wilk para el tamaño de muestra específico. También es una buena opción cuando se desea comparar la CDF de sus datos con una distribución teórica. | Primera opción para comprobar la normalidad. Debido a su superior potencia, es la prueba más recomendada en muchas guías estadísticas. | No obstante, vamos a someterlo a prueba... --- class: justify, animate__animated, animate__fadeIn ## ¿Lilliefors o Shapiro-Wilk? ¿Cuál prueba es mejor? <div class="img-container"> <img src="img/comparacion_p_valores.png" style="border: 1px black solid;"> </div> --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Prueba de homogeneidad de varianzas ] --- class: justify, animate__animated, animate__fadeIn ## Comparación de distribuciones y varianzas .pull-left[ Podemos separar la distribución de peso total en tres grupos distintos (machos, hembras e individuos infantes aún sin desarrollar). Si tomamos, por ejemplo, 15 individuos de cada grupo de manera aleatoria, obtenemos los siguientes p-valores para la prueba de Lilliefors y Shapiro-Wilk, así como la varianza: ``` ## # A tibble: 3 × 4 ## sex p.value.l p.value.sw var ## <fct> <dbl> <dbl> <dbl> ## 1 Macho 0.281 0.298 0.309 ## 2 Hembra 0.565 0.875 0.304 ## 3 Infante 0.0265 0.0123 0.0413 ``` A la luz de las pruebas de normalidad, con un `\(\alpha=0.05\)`, la distribución de infantes es no normal, mientras que la de machos y hembras lo es. Asimismo, la varianza de individuos infantes es menor en comparación con los machos y las hembras. Esto se puede verificar con el gráfico de la derecha. Aunque claramente las varianzas son diferentes, podemos llevar a cabo una prueba homogeneidad de varianzas. ] .pull-right[ <!-- --> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas .pull-left[ **1** Se establecen las hipótesis: ***H0: Todos los grupos tienen varianzas similares.*** ***Ha: Al menos uno de los grupos posee una varianza distinta de las otras.*** **2** Se tienen `\(k\)` grupos, cada uno con un promedio `\(\bar{X}_{j}\)`. Se calcula el valor absoluto de la diferencia entre las observaciones de cada grupo y su media correspondiente, conocido como los residuales: `\(e_{ij}=|X_{i}-\bar{X}_{ij}|\)` **3** Se calcula la suma de los cuadrados entre los grupos (`\(SSB\)`) y la suma de los cuadrados dentro de los grupos (`\(SSW\)`): `\(SSB=\sum\limits_{j=1}^{k}n_{j}\left(\bar{e}_{j}-\bar{e}_{\text{total}}\right)^{2}\\SSW=\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n_{j}}\left(e_{ij}-\bar{e}_{j}\right)^{2}\)` ] .pull-right[ **4** Se calcula la media de la suma de los cuadrados entre los grupos (`\(MSB\)`) y la media de la suma de los cuadrados dentro de los grupos (`\(MSW\)`), con `\(k-1\)` y `\(n-k\)` grados de libertad respectivamente: `\(MSB=\frac{SSB}{k-1}\\MSW=\frac{SSW}{n-k}\)` **5** Se calcula el estadístico de prueba `\(F\)`: `\(F=\frac{MSB}{MSW}\)` **6** Se busca el valor crítico en la tabla de F de Fisher, con `\(df_{1}=k-1\)` y `\(df_{2}=n-k\)`. **7** Se contrasta el valor crítico contra el estadístico de prueba: `\(F \geq F_{df_{1},df_{2},\alpha}\)` Si `\(F\)` es mayor o igual que el valor crítico, no se acepta `\(H_{0}\)`. Si es menor, se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo .pull-left[ Se tienen 15 observaciones del peso total para cada grupo: ``` ## Macho Hembra Infante ## 1 0.9440 1.7730 0.3535 ## 2 1.2700 0.2070 0.1920 ## 3 0.6565 1.6840 0.2260 ## 4 1.3745 1.0770 0.2005 ## 5 0.6295 1.4355 0.5130 ## 6 0.9325 1.5660 0.2770 ## 7 2.0885 0.9775 0.1375 ## 8 1.4275 0.8435 0.5910 ## 9 2.1400 2.1030 0.7045 ## 10 0.7720 0.3840 0.3200 ## 11 0.1700 1.0905 0.2710 ## 12 0.5230 0.7760 0.8025 ## 13 0.5150 0.5755 0.3060 ## 14 1.0270 1.7190 0.2050 ## 15 1.0240 1.0325 0.2085 ``` Se calcula la media para cada grupo: ``` ## sex Promedio ## 1 Macho 1.0329 ## 2 Hembra 1.1496 ## 3 Infante 0.3539 ``` ] .pull-right[ Una vez calculados los promedios, se restan de cada observación correspondiente y se expresan en su valor absoluto: ``` ## Macho Hembra Infante ## 1 0.0889 0.6234 0.0004 ## 2 0.2371 0.9426 0.1619 ## 3 0.3764 0.5344 0.1279 ## 4 0.3416 0.0726 0.1534 ## 5 0.4034 0.2859 0.1591 ## 6 0.1004 0.4164 0.0769 ## 7 1.0556 0.1721 0.2164 ## 8 0.3946 0.3061 0.2371 ## 9 1.1071 0.9534 0.3506 ## 10 0.2609 0.7656 0.0339 ## 11 0.8629 0.0591 0.0829 ## 12 0.5099 0.3736 0.4486 ## 13 0.5179 0.5741 0.0479 ## 14 0.0059 0.5694 0.1489 ## 15 0.0089 0.1171 0.1454 ``` Se calcula también el promedio total de residuales o `\(\bar{e}_{\text{total}}\)`: ``` ## [1] 0.3429 ``` ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo Ahora, calculamos `\(SSB\)` y `\(SSW\)`. Primero, calculamos los promedios de los residuales de cada grupo: ``` ## sex Promedio ## 1 Macho 0.4181 ## 2 Hembra 0.4511 ## 3 Infante 0.1594 ``` `\(SSB=\sum\limits_{j=1}^{k}n_{j}\left(\bar{e}_{j}-\bar{e}_{\text{total}}\right)^{2}=15\left(0.4181-0.3429\right)^{2}+15\left(0.4511-0.3429\right)^{2}+15\left(0.1594-0.3429\right)^{2}\\=\boxed{0.76537}\)` `\(SSW=\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n_{j}}\left(e_{ij}-\bar{e}_{j}\right)^{2}=\left(0.0889-0.4181\right)^{2}+\left(0.6234-0.4511\right)^{2}+\left(0.0004-0.1594\right)^{2}+\dots \\ = \boxed{3.10712}\)` A continuación, los dividimos entre `\(k-1\)` y `\(n-k\)` respectivamente, para así obtener `\(MSB\)` y `\(MSW\)`: `\(MSB=\frac{0.76537}{2}=0.38268\\MSW=\frac{3.10712}{42}=0.07398\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo Ahora, calculamos el estadístico `\(F\)`: `\(F=\frac{MSB}{MSW}=\frac{0.38268}{0.07398}=5.1729\)` Buscamos el valor de `\(F_{\text{crítico}}\)`, el cual es 3.2199. Contrastamos ambos valores: `\(5.1729 \geq 3.2199\)` Lo cual claramente es cierto. Por lo tanto, no tenemos suficiente evidencia para aceptar `\(H_{0}\)`. De esta forma, concluimos que al menos una de las distribuciones tiene una varianza distinta. Sabemos, por el gráfico inmediatamente anterior, que el grupo con varianza no similar es el de infantes. Otra manera de ver esto es mediante una prueba *post hoc* de Tukey: ``` ## $sex ## diff lwr upr p adj ## Hembra-Macho 0.03294222 -0.2083478 0.27423229 0.9412436 ## Infante-Macho -0.25870667 -0.4999967 -0.01741660 0.0331958 ## Infante-Hembra -0.29164889 -0.5329390 -0.05035882 0.0145375 ``` Esto lo veremos más adelante en el análisis de varianza (ANOVA). --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo El número de comparaciones de 2 grupos que vimos anteriormente (Hembra-Macho, Infante-Macho e Infante-Hembra) lo calculamos a través de la fórmula de la combinatoria: `\(C_{k}^{2}=\frac{k!}{2!\left(k-2\right)!}\)` También podemos visualizar el p-valor y la tabla construida para esta prueba en R (en realidad, es la misma tabla utilizada para el ANOVA): ``` ## Analysis of Variance Table ## ## Response: residuales ## Df Sum Sq Mean Sq F value Pr(>F) ## sex 2 0.76537 0.38268 5.1729 0.009811 ** ## Residuals 42 3.10712 0.07398 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` También lo veremos más adelante en el análisis de varianza (ANOVA). --- class: left, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Resumen |Característica|Descripción| |:---:|:---| |Objetivo|Pone a prueba la `\(H_{0}\)` de que varios grupos tienen varianzas iguales.| |Supuestos|Supone que las muestras son independientes y se extraen de poblaciones con una distribución continua.| |Robustez|Más robusto a las desviaciones de la normalidad en comparación con otras pruebas, como la prueba de Bartlett.| |Estadístico de prueba|Estadístico `\(F\)`, basado en las desviaciones absolutas de las observaciones con respecto a las medias o medianas de su grupo.| |Sensibilidad| Sensible a tamaños de muestra desiguales; puede manejar grupos con diferentes números de observaciones.| |Aplicación|Se utiliza comúnmente en ANOVA y análisis de regresión para comprobar el supuesto de homogeneidad de varianzas.| .pull-left.justify[ Recordar también que la distribución F de Fisher es, en realidad, una familia de distribuciones, construida a partir de dos distribuciones normales, cada una con su promedio y su varianza. En general, para la prueba de Levene, las dos fuentes de varianza provienen de las diferencias entre los grupos (`\(SSB\)`) y dentro de los grupos (`\(SSW\)`), que constituyen estimadores insesgados de la varianza. ] .pull-right[  ] --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Análisis de varianza (ANOVA) ] --- class: justify, animate__animated, animate__fadeIn ## Comparar medias de 3 o más grupos .pull-left[ Ya vimos que la varianza de uno de los grupos es menor, y que además ese mismo grupo posee una distribución no normal. No obstante, podemos realizar un análisis de varianza (ANOVA), aún sabiendo que estos supuestos no se cumplen. El ANOVA es una prueba que compara las medias de tres o más grupos para determinar si existe una diferencia en al menos una de las medias de los grupos con respecto a las demás. Si aplicáramos 3 pruebas *t* de Student (sabiendo que son posibles hasta 3 combinaciones distintas de 2 grupos a la vez) para comparar las medias, con un `\(\alpha=0.05\)`, **el error tipo I aumentaría hasta un `\(1 - \left(1-\alpha\right)^{3} \approx 0.14\)`**. En estos casos, la mejor opción es el ANOVA, ya que permite comparar todas las medias de todos los grupos a la vez. ] .pull-right[ <!-- --> ] --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) .pull-left[ **1** Se establecen las hipótesis: ***H0: Todos los grupos tienen medias similares.*** ***Ha: Al menos uno de los grupos posee una media distinta de las otras.*** **2** Se tienen `\(k\)` grupos, cada uno con un promedio `\(\bar{X}_{j}\)`. Estos promedios se calculan mediante la fórmula de media aritmética. **3** Se calcula la suma de los cuadrados entre los grupos (`\(SSB\)`) y la suma de los cuadrados dentro de los grupos (`\(SSW\)`): `\(SSB=\sum\limits_{j=1}^{k}n_{j}\left(\bar{X}_{j}-\bar{X}_{\text{total}}\right)^{2}\\SSW=\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n_{j}}\left(X_{ij}-\bar{X}_{j}\right)^{2}\)` ] .pull-right[ **4** Se calcula la media de la suma de los cuadrados entre los grupos (`\(MSB\)`) y la media de la suma de los cuadrados dentro de los grupos (`\(MSW\)`), con `\(k-1\)` y `\(n-k\)` grados de libertad respectivamente: `\(MSB=\frac{SSB}{k-1}\\MSW=\frac{SSW}{n-k}\)` **5** Se calcula el estadístico de prueba `\(F\)`: `\(F=\frac{MSB}{MSW}\)` **6** Se busca el valor crítico en la tabla de F de Fisher, con `\(df_{1}=k-1\)` y `\(df_{2}=n-k\)`. **7** Se contrasta el valor crítico contra el estadístico de prueba: `\(F \geq F_{df_{1},df_{2},\alpha}\)` Si `\(F\)` es mayor o igual que el valor crítico, no se acepta `\(H_{0}\)`. Si es menor, se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo Los pasos son exactamente iguales a los de la prueba de Levene (de hecho, la prueba de Levene está basada en la prueba ANOVA). La única diferencia radica en que, en la prueba de Levene, se trabaja en base a las desviaciones absolutas de las observaciones con respecto al promedio de cada grupo, mientras que aquí estamos comparando los promedios de los grupos y trabajamos con las observaciones directas. Siendo esto así, solo mostramos el resultado de la tabla: ``` ## Analysis of Variance Table ## ## Response: whole_weight ## Df Sum Sq Mean Sq F value Pr(>F) ## sex 2 5.5397 2.76984 12.697 4.866e-05 *** ## Residuals 42 9.1623 0.21815 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` Por lo tanto, concluimos, con un `\(\alpha=0.05\)`, que al menos una de las medias es diferente. Pero... ¿cuál de todas las medias? --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey Se utiliza para comparar las diferencias entre medias e interpretar cuáles de ellas son diferentes. .pull-left[ **1** Se plantean las hipótesis: `\(H_{0}:\text{Las medias de ambos grupos son similares.}\\H_{a}:\text{Las medias de ambos grupos difieren.}\)` **2** Se determina cuántas comparaciones de pares de medias han de hacerse mediante la fórmula de la combinatoria: `\(C_{k}^{2}=\frac{k!}{2!\left(k-2\right)!}\)` **3** Se calcula la diferencia entre medias: `\(\bar{X}_{i}-\bar{X}_{j}\)` **4** Se calcula el estimador insesgado del error estándar (`\(SE\)`): ] .pull-right[ `\(SE=\sqrt{\frac{MSW}{n}}\)` donde `\(n\)` es el tamaño de cada grupo. **5** Se calcula el estadístico de prueba `\(q\)`: `\(q=\frac{\bar{X}_{i}-\bar{X}_{j}}{SE}\)` **6** Se busca el valor de `\(q_{\text{crítico}}\)` en la [tabla de rangos `\(q\)` estudentizados](https://real-statistics.com/statistics-tables/studentized-range-q-table/), con `\(df\)` iguales a los de `\(MSW\)`. **7** Se compara cada valor de `\(q\)` contra el `\(q_{\text{crítico}}\)`: `\(|q| \geq q_{\text{crítico}}\)` Con un `\(\alpha=0.05\)`, si `\(q\)` es mayor o igual que `\(q_{\text{crítico}}\)`, no hay suficiente evidencia para aceptar `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey Se conoce la media de cada grupo: `\(\bar{X}_{\text{Macho}}=1.0329 \\ \bar{X}_{\text{Hembra}}=1.1496 \\ \bar{X}_{\text{Infante}}=0.3539\)` También se sabe que pueden hacer hasta `\(C_{3}^{2}=3\)` combinaciones de pares de medias distintas. Se calculan, entonces, las diferencias entre medias: `\(\bar{X}_{\text{Hembra}} - \bar{X}_{\text{Macho}} = 0.1167 \\ \bar{X}_{\text{Infante}} - \bar{X}_{\text{Macho}} = -0.6791 \\ \bar{X}_{\text{Infante}} - \bar{X}_{\text{Hembra}} = -0.7957\)` Se calcula también `\(SE\)` a partir de `\(MSW\)` y del tamaño `\(n\)` de cada grupo, que es 15: `\(SE=\sqrt{\frac{0.21815}{15}}=0.1206\)` --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey Ahora, se calcula el estadístico de prueba `\(q\)` para cada par de medias: `\(\text{Hembra - Macho}:0.9674 \\ \text{Infante - Macho}:-5.6309 \\ \text{Infante - Hembra}:-6.5984\)` Cada uno de estos valores se compara contra un `\(q_{\text{crítico}}\)` con un `\(\alpha=0.05\)` y `\(df=42\)` grados de libertad. Si buscamos en la [tabla](https://real-statistics.com/statistics-tables/studentized-range-q-table/), el más cercano que obtenemos es el valor de `\(df=40\)`, el cual es 3.442. `\(\text{Hembra - Macho}:|0.9674| \geq 3.442\)` ❌ (Se acepta `\(H_{0}\)`) `\(\text{Infante - Macho}: |-5.6309| \geq 3.442\)` ✅ (Se rechaza `\(H_{0}\)`) `\(\text{Infante - Hembra}: |-6.5984| \geq 3.442\)` ✅ (Se rechaza `\(H_{0}\)`) Por lo tanto, en los pares **Infante - Macho** e **Infante - Hembra** hay diferencias en la media, y es en estos subgrupos donde no hay suficiente evidencia para aceptar `\(H_{0}\)`. Así, se dice que las media del peso total de infantes difiere tanto de la media de machos como de hembras. --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey ``` ## Tukey multiple comparisons of means ## 95% family-wise confidence level ## ## Fit: aov(formula = abalone.sex.lm) ## ## $sex ## diff lwr upr p adj ## Hembra-Macho 0.1166667 -0.297678 0.5310113 0.7740146 ## Infante-Macho -0.6790667 -1.093411 -0.2647220 0.0007635 ## Infante-Hembra -0.7957333 -1.210078 -0.3813887 0.0000913 ``` Si los tamaños de los grupos son distintos, la fórmula para calcular `\(SE\)` se convierte en: `\(SE=\sqrt{\frac{MSW}{2}\left(\frac{1}{n_{i}}+\frac{1}{n_{j}}\right)}\)` El intervalo de confianza se puede calcular como `\(q_{\text{crítico}}\sqrt{\frac{MSW}{n}}\)`. Esto nos da la posibilidad de hacer el siguiente gráfico: --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Un momento... ¿cómo que hay más de un ANOVA? <br/> | **Tipo de prueba** | **Función** | |:---:|:---| | ANOVA de una vía | Compara las medias de tres o más grupos independientes para determinar si al menos uno es diferente. | | ANOVA de dos vías | Examina el efecto de dos factores independientes sobre una variable dependiente y sus interacciones. | | ANOVA de medidas repetidas | Compara las medias de varios grupos en diferentes condiciones o momentos en el tiempo. | | ANOVA de modelo mixto | Combina efectos fijos y aleatorios, permitiendo el análisis de datos con medidas repetidas (factores dentro de sujetos) y grupos independientes (factores entre sujetos). | | MANOVA | Extensión de ANOVA que analiza múltiples variables dependientes simultáneamente. | | ANCOVA | Combina ANOVA y regresión, ajustando las medias de los grupos por una o más covariables o variables continuas. | | PERMANOVA | Variante no paramétrica del ANOVA que evalúa diferencias en la composición de grupos basándose en distancias o disimilitudes entre ellos, calculando posibles rearreglos de los datos observados. | --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Pruebas no paramétricas ] --- class: justify, animate__animated, animate__fadeIn ## Pruebas no paramétricas Cuando los supuestos de las pruebas paramétricas (es decir, aquellas que están basadas en parámetros, como la media y la desviación estándar) no se cumplen, sobre todo aquellos concernientes a la distribución de los datos, pueden utilizarse pruebas no paramétricas en su lugar. Por lo general, se usan las **clasificaciones** de las observaciones en vez de las mediciones reales para llevar a cabo estas pruebas. A pesar de que existen múltiples pruebas no paramétricas, nos vamos a fijar especialmente en estas: | Prueba de suma de rangos de Wilcoxon de una sola muestra | Prueba de Mann-Whitney-Wilcoxon para muestras independientes | Prueba de Wilcoxon para rangos signados | Prueba de Kruskal-Wallis | | :--- | :--- | :--- | :--- | | Se utiliza para evaluar si la mediana de una muestra es diferente de un valor específico. Es especialmente útil cuando los datos no siguen una distribución normal. | Compara dos grupos independientes para determinar si provienen de la misma población. Es una alternativa a la prueba *t* de Student para muestras independientes. | Similar a la prueba de suma de rangos de Wilcoxon de una sola muestra. Se utiliza para comparar dos muestras relacionadas o emparejadas. Es una alternativa a la prueba *t* de Student para muestras relacionadas o pareadas. | Se utiliza para comparar tres o más grupos independientes. Es una alternativa al ANOVA cuando los supuestos de normalidad no se cumplen. | Veamos cómo funcionan estas pruebas... --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra .pull-left[ **1** Se establecen las hipótesis: `\(H_{0}:\:Med=Med_{0}\)` `\(H_{a}:\:Med \neq Med_{0}\\H_{a}:\:Med > Med_{0}\\H_{a}:\:Med < Med_{0}\)` **2** Se resta la mediana hipotética (`\(Med_{0}\)`) de las observaciones. **Las diferencias cuyo resultado sea cero, se descartan**. **3** Se expresan las diferencias como valores absolutos. **4** Se ordenan las diferencias en orden ascendente. **5** Se clasifican las diferencias (se hace un *ranking*). Si hay empates (valores repetidos), se calcula la posición promedio. **6** Se vuelven a asignar los signos originales de las diferencias a los *rankings*. ] .pull-right[ **Primer caso**: Si `\(n>25\)` **7** Se calcula el cuadrado de cada *ranking* (`\(R_{i}^{2}\)`). **8** Se calcula el estadístico de prueba `\(T\)`: `\(T=\frac{\sum\limits_{i=1}^{n}R_{i}}{\sqrt{\sum\limits_{i=1}^{n}R_{i}^{2}}}\text{ (Si hay empates).}\\T=\sum\limits_{i=1}^{k}R_{i}^{+}\text{ (Si no hay empates).}\)` **9** El estadístico de prueba `\(T\)` se compara contra un valor crítico de `\(Z\)` de una tabla normal estandarizada: `\(|T| \geq Z_{\frac{\alpha}{2}}\text{ (DC)}\\T \geq Z_{\alpha}\text{ (CD)}\\T \leq -Z_{\alpha}\text{ (CI)}\)` Si se cumple alguna de estas propuestas (dependiendo de la direccionalidad de la hipótesis), no se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra .pull-left[ **Segundo caso**: Si `\(n<25\)` **7** Se calcula la suma de los *rankings* positivos (`\(R_{i}^{+}\)`). **8** El estadístico de prueba `\(T\)` será: `\(T=\sum\limits_{i=1}^{n}R_{i}^{+}\)` **9** Se busca el valor de `\(T_{\text{crítico}}\)` en la [tabla de Wilcoxon de rangos signados](https://real-statistics.com/statistics-tables/wilcoxon-signed-ranks-table/), con el valor de `\(\alpha\)` especificado (normalmente 0.05). Las hipótesis se contrastan como: `\(T \leq T_{n;\:\alpha} \text{ (DC)}\)` **Nota**: Para las pruebas de una sola cola, se duplica el valor de `\(\alpha\)` y se busca en la tabla correspondiente: `\(T \leq T_{n;\: 2\alpha}\)` ] .pull-right[ Si se cumple alguna de estas propuestas (dependiendo de la direccionalidad de la hipótesis), no se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Para este caso, se usarán datos provenientes de la medición de individuos vegetales (árboles y arbustos) del [Jardín Botánico de Caracas](https://www.openstreetmap.org/relation/3380028) y de [Cerro El Volcán](https://www.openstreetmap.org/relation/10703464). ``` ## # A tibble: 281 × 8 ## individuo lugar muerto cap dap area.basal altura clase.dap ## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr> ## 1 1 CV No 37.5 11.9 0.0990 9 DAP > 10 ## 2 2 CV No 119 37.9 0.402 16 DAP > 10 ## 3 3 CV No 72 22.9 1.03 16 DAP > 10 ## 4 4 CV No 5 1.59 0.00497 2.7 1 cm < DAP ≤ 10 cm ## 5 5 CV No 42 13.4 0.351 10.5 DAP > 10 ## 6 6 CV No 7 2.23 0.00975 5.25 1 cm < DAP ≤ 10 cm ## 7 7 CV Sí 29 9.23 0.167 NA 1 cm < DAP ≤ 10 cm ## 8 8 CV No 29 9.23 0.167 13 1 cm < DAP ≤ 10 cm ## 9 9 CV No 55 17.5 0.602 15 DAP > 10 ## 10 10 CV No 12.5 3.98 0.0311 4.5 1 cm < DAP ≤ 10 cm ## # ℹ 271 more rows ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Seleccionamos 30 muestras aleatorias de altura (en metros) de individuos de Cerro El Volcán (CV): ``` ## [1] 5.00 2.00 7.00 12.00 12.00 3.00 3.00 10.50 15.00 4.50 6.00 6.75 ## [13] 13.50 2.20 8.25 3.00 9.00 7.50 4.50 4.50 9.75 7.50 11.25 16.00 ## [25] 13.00 4.50 8.25 6.00 10.00 3.00 ``` Cuya mediana en este caso es 7.25 m. ``` ## [1] 7.25 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Vamos a probar las siguientes hipótesis: `\(H_{0}:\: Med = 7\\H_{a}:\: Med \neq 7\)` Restamos la mediana propuesta de cada valor de altura: ``` ## [1] -2.00 -5.00 0.00 5.00 5.00 -4.00 -4.00 3.50 8.00 -2.50 -1.00 -0.25 ## [13] 6.50 -4.80 1.25 -4.00 2.00 0.50 -2.50 -2.50 2.75 0.50 4.25 9.00 ## [25] 6.00 -2.50 1.25 -1.00 3.00 -4.00 ``` Sacamos su valor absoluto y ordenamos de forma ascendente el valor absoluto de las diferencias (como hay una diferencia igual a 0, la eliminamos): ``` ## [1] 0.25 0.50 0.50 1.00 1.00 1.25 1.25 2.00 2.00 2.50 2.50 2.50 2.50 2.75 3.00 ## [16] 3.50 4.00 4.00 4.00 4.00 4.25 4.80 5.00 5.00 5.00 6.00 6.50 8.00 9.00 ``` Clasificamos los datos (*ranking*): ``` ## [1] 1.0 2.5 2.5 4.5 4.5 6.5 6.5 8.5 8.5 11.5 11.5 11.5 11.5 14.0 15.0 ## [16] 16.0 18.5 18.5 18.5 18.5 21.0 22.0 24.0 24.0 24.0 26.0 27.0 28.0 29.0 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Reasignamos a cada valor del *ranking* su signo correspondiente: ``` ## [1] -1.0 2.5 2.5 -4.5 -4.5 6.5 6.5 -8.5 8.5 -11.5 -11.5 -11.5 ## [13] -11.5 14.0 15.0 16.0 -18.5 -18.5 -18.5 -18.5 21.0 -22.0 -24.0 24.0 ## [25] 24.0 26.0 27.0 28.0 29.0 ``` Se calcula la suma de los *rankings* y la suma de los cuadrados de los *rankings*: ``` ## # A tibble: 1 × 2 ## Ri Ri_cuadrado ## <dbl> <dbl> ## 1 66 8541 ``` Se calcula el estadístico `\(T\)`: `\(T=\frac{66}{\sqrt{8541}}=0.71415\)` Esto se compara contra un `\(Z_{\frac{\alpha}{2}}=1.96\)`: `\(|0.71415| \geq 1.96\)` Lo cual, evidentemente, no es cierto. Por lo tanto, tenemos, con un `\(\alpha=0.05\)`, suficiente evidencia para aceptar `\(H_{0}\)`. Por lo tanto, la mediana de los datos es similar a 7. --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo A manera de ejemplo, también podemos calcular `\(R_{i}^{+}\)` y compararlo con el `\(T_{\text{crítico}}\)` de la tabla: `\(R_{i}^{+}=2.5+2.5+6.5+\dots+29=250.5\)` `\(T_{29; \:0.05}=126\)` `\(250.5 \leq 126\)` ❌ Por lo tanto, con un valor de `\(\alpha=0.05\)`, tenemos suficiente evidencia para aceptar `\(H_{0}\)`. Concluimos que la mediana es similar a 7. --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo La salida en R para esta prueba es la siguiente: ``` ## ## Wilcoxon signed rank test with continuity correction ## ## data: salida.campo.muestra ## V = 250.5, p-value = 0.4819 ## alternative hypothesis: true location is not equal to 7 ## 95 percent confidence interval: ## 5.974950 9.100027 ## sample estimates: ## (pseudo)median ## 7.50001 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo También podemos hacer la prueba en Excel, con un poco de ingenio: <div class="img-container"> <img src="data:image/png;base64,#img/wilcoxon_excel.png" width="480px" style="border: 1px black solid;"/> </div> --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes .pull-left[ **1** Se establecen las hipótesis: `\(H_{0}:\:Med_{1}=Med_{2}\)` `\(H_{a}:\:Med_{1} \neq Med_{2}\\H_{a}:\:Med_{1} > Med_{2}\\H_{a}:\:Med_{1} < Med_{2}\)` **2** Los datos de ambas muestras se unen, debidamente identificados, y se ordenan de forma ascendente. **3** Se clasifican las diferencias (se hace un *ranking*). Si hay empates (valores repetidos), se calcula la posición promedio. **4** Se suman los valores del *ranking* 1 (`\(R_{1}\)`) y del *ranking* 2 (`\(R_{2}\)`). **5** Se calcula el estadístico `\(U\)` para ambas muestras: `\(U_{1}=n_{1}n_{2}+\frac{n_{1}(n_{1}+1)}{2}-R_{1}\\U_{2}=n_{1}n_{2}+\frac{n_{2}(n_{2}+1)}{2}-R_{2}\)` ] .pull-right[ **6** Si no hay empates o representan menos del 10% de todos los datos (`\(n=n_{1}+n_{2}\)`), el estadístico de prueba `\(U\)` a escoger será: `\(U=min(U_{1},U_{2})\)` Si la cantidad de empates es igual o supera el 10% de `\(n\)`, o si `\(n_{1}\)` y `\(n_{2}\)` son mayores a 20, entonces se hace una correción a `\(Z\)` de la forma: `\(Z=\frac{U-\mu}{\sigma}\)` en donde: `\(\mu=\frac{n_{1}n_{2}}{2}\\ \sigma^{2}=\left(\frac{n_{1}n_{2}}{n^{2}-n}\right)\left(\frac{n^{3}-n}{12}-\sum\limits_{i=1}^{k}\frac{f_{i}^{3}-f_{i}}{12}\right)\)` siendo `\(k\)` el número total de empates, `\(f_{i}\)` el número de observaciones que comparten el rango de empate `\(i\)` y `\(n\)` el número total de observaciones. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes .pull-left[ **7** Si no hay empates, o son menos del 10%, se busca un valor `\(U_{\text{crítico}}\)` en la [tabla de Mann-Whitney](https://real-statistics.com/statistics-tables/mann-whitney-table/) con el valor de `\(\alpha\)` especificado (normalmente 0.05). Los valores se contrastan de la siguiente forma: `\(U \leq U_{n; \:\alpha} \text{ (DC)}\)` Si la prueba es de una sola cola, se duplica el valor de `\(\alpha\)` y se busca el valor de `\(U_{\text{crítico}}\)` en la tabla correspondiente: `\(U \leq U_{n; \: 2 \alpha}\)` Si los valores de `\(n_{1}\)` y `\(n_{2}\)` son mayores a 20, el estadístico de prueba se cambia por `\(Z\)`, tal y como está descrito en el paso 6: `\(|Z| \geq Z_{\frac{\alpha}{2}} \text{ (DC)}\\Z \geq Z_{\alpha} \text{ (CD)}\\Z \leq -Z_{\alpha} \text{ (CI)}\)` ] .pull-right[ Si alguno de los contrastes para `\(U\)` o para `\(Z\)` se cumple (dependiendo de la direccionalidad de la prueba), entonces se dice que no se puede aceptar `\(H_{0}\)`. **Propiedades importantes a tener en cuenta** 1. **Propiedad 1**: `\(U_{1}+U_{2}=n_{1}n_{2}\)` 2. **Propiedad 2**: Para unos `\(n_{1}\)` y `\(n_{2}\)` lo suficientemente grandes, el estadístico `\(U\)` se distribuye de manera aprox. normal (`\(\mathcal{N}(\mu,\sigma^{2})\)`), tal que `\(\mu=\frac{n_{1}n_{2}}{2}\\ \sigma^{2}=\frac{n_{1}n_{2}(n_{1}+n_{2}+1)}{12}\)` 3. **Propiedad 3**: Si el número de empates es superior al 10% de `\(n\)`, entonces: `\(\sigma^{2}=\left(\frac{n_{1}n_{2}}{n^{2}-n}\right)\left(\frac{n^{3}-n}{12}-\sum\limits_{i=1}^{k}\frac{f_{i}^{3}-f_{i}}{12}\right)\)` ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Pondremos a prueba las hipótesis: `\(H_{0}:Med_{CV}=Med_{JB}\\H_{a}:Med_{CV} \neq Med_{JB}\)` Usaremos las mismas 30 muestras de altura para individuos vegetales de Cerro El Volcán (CV), y adicionalmente vamos a escoger 30 muestras aleatorias para el Jardín Botánico. **Cerro El Volcán (CV)**: ``` ## [1] 5.00 2.00 7.00 12.00 12.00 3.00 3.00 10.50 15.00 4.50 6.00 6.75 ## [13] 13.50 2.20 8.25 3.00 9.00 7.50 4.50 4.50 9.75 7.50 11.25 16.00 ## [25] 13.00 4.50 8.25 6.00 10.00 3.00 ``` **Jardín Botánico de Caracas (JB)**: ``` ## [1] 4.000 2.500 2.200 2.250 2.000 2.600 2.250 2.550 3.000 0.750 ## [11] 3.300 13.000 0.750 2.500 5.250 6.000 1.800 11.000 1.875 7.000 ## [21] 4.000 14.000 3.000 2.000 11.250 9.000 3.000 1.800 2.250 7.000 ``` Cuyas medianas son respectivamente 7.25 m (CV) y 2.80 m (JB). --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Unimos los datos de ambas muestras y los ordenamos de forma ascendente, manteniendo la identificación de cada una: ``` ## JB JB JB JB JB CV JB JB CV JB JB ## 0.750 0.750 1.800 1.800 1.875 2.000 2.000 2.000 2.200 2.200 2.250 ## JB JB JB JB JB JB CV CV CV CV JB ## 2.250 2.250 2.500 2.500 2.550 2.600 3.000 3.000 3.000 3.000 3.000 ## JB JB JB JB JB CV CV CV CV CV JB ## 3.000 3.000 3.300 4.000 4.000 4.500 4.500 4.500 4.500 5.000 5.250 ## CV CV JB CV CV JB JB CV CV CV CV ## 6.000 6.000 6.000 6.750 7.000 7.000 7.000 7.500 7.500 8.250 8.250 ## CV JB CV CV CV JB CV JB CV CV CV ## 9.000 9.000 9.750 10.000 10.500 11.000 11.250 11.250 12.000 12.000 13.000 ## JB CV JB CV CV ## 13.000 13.500 14.000 15.000 16.000 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo De esta forma, se crea el siguiente *ranking*: ``` ## JB JB JB JB JB CV JB JB CV JB JB JB JB JB JB JB ## 1.5 1.5 3.5 3.5 5.0 7.0 7.0 7.0 9.5 9.5 12.0 12.0 12.0 14.5 14.5 16.0 ## JB CV CV CV CV JB JB JB JB JB JB CV CV CV CV CV ## 17.0 21.0 21.0 21.0 21.0 21.0 21.0 21.0 25.0 26.5 26.5 29.5 29.5 29.5 29.5 32.0 ## JB CV CV JB CV CV JB JB CV CV CV CV CV JB CV CV ## 33.0 35.0 35.0 35.0 37.0 39.0 39.0 39.0 41.5 41.5 43.5 43.5 45.5 45.5 47.0 48.0 ## CV JB CV JB CV CV CV JB CV JB CV CV ## 49.0 50.0 51.5 51.5 53.5 53.5 55.5 55.5 57.0 58.0 59.0 60.0 ``` **Cerro El Volcán (CV)**: ``` ## [1] 7.0 9.5 21.0 21.0 21.0 21.0 29.5 29.5 29.5 29.5 32.0 35.0 35.0 37.0 39.0 ## [16] 41.5 41.5 43.5 43.5 45.5 47.0 48.0 49.0 51.5 53.5 53.5 55.5 57.0 59.0 60.0 ``` **Jardín Botánico de Caracas (JB)**: ``` ## [1] 1.5 1.5 3.5 3.5 5.0 7.0 7.0 9.5 12.0 12.0 12.0 14.5 14.5 16.0 17.0 ## [16] 21.0 21.0 21.0 25.0 26.5 26.5 33.0 35.0 39.0 39.0 45.5 50.0 51.5 55.5 58.0 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Con cada uno de los *rankings* separados, calculamos su suma: `\(R_{1}=7+9.5+21+\dots+60=1146\\R_{2}=1.5+1.5+3.5+\dots+58=684\)` Calculamos `\(U\)` para cada grupo: `\(U_{1}=(30)(30)+\frac{30(30+1)}{2}-1146=219\\U_{2}=(30)(30)+\frac{30(30+1)}{2}-684=681\)` Como `\(n_{1}\)` y `\(n_{2}\)` son mayores a 20, debemos hacer una aproximación a la normal por medio de `\(Z\)`. Para ello, debemos calcular `\(\mu\)` y `\(\sigma\)`: `\(\mu=\frac{(30)(30)}{2}=450\)` Para calcular `\(\sigma\)`, debemos contar el número de empates... --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo .pull-left[ Hay un total de `\(k=17\)` grupos con empates: - 1.5: 2 empates. - 3.5: 2 empates. - 7: 3 empates. - 9.5: 2 empates. - 12: 3 empates. - 14.5: 2 empates. - 21: 7 empates. - 26.5: 2 empates. - 29.5: 4 empates. - 35: 3 empates. - 39: 3 empates. - 41.5: 2 empates. - 43.5: 2 empates. - 45.5: 2 empates. - 51.5: 2 empates. - 53.5: 2 empates. - 55.5: 2 empates. ] .pull-right[ Por lo tanto: `\(\sum\limits_{i=1}^{17}\frac{f_{i}^{3}-f_{i}}{12}=\frac{1}{12}\left((2^{3}-2)+(2^{3}-2)+(3^{3}-3)+\dots\right)\\=46.5\)` `\(\sigma^{2}=\left(\frac{(30)(30)}{60^{2}-60}\right)\left(\frac{60^{3}-60}{12}-46.5\right)=4563.178\)` Así, el valor del estadístico `\(Z\)` es: `\(Z=\frac{219-450}{\sqrt{4563.178}}=-3.41962\)` Comparamos este valor contra un `\(Z_{\text{crítico}}\)` de 1.96: `\(|-3.41962| \geq 1.96\)` ✅ Por lo tanto, no tenemos suficiente evidencia para aceptar `\(H_{0}\)`. Concluimos que la diferencia entre alturas de individuos vegetales de CV y JB es distinta de 0. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Más R: ``` ## ## Asymptotic Wilcoxon-Mann-Whitney Test ## ## data: altura by lugar (CV, JB) ## Z = 3.4196, p-value = 0.0006271 ## alternative hypothesis: true mu is not equal to 0 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Y más Excel: <div class="img-container"> <img src="data:image/png;base64,#img/mann-whitney_excel.png" width="900px" style="border: 1px black solid;"/> </div> --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados Es similar a la prueba de suma de rangos de Wilcoxon para una sola muestra, y se procede de la misma manera que esta. Lo único diferente es: 1. En vez de contrastar dos grupos independientes, se contrastan dos grupos pareados **provenientes de la misma unidad muestral**. 2. Se pone a prueba la hipótesis nula de que la mediana de las diferencias es cero: `\(H_{0}:Med_{d}=0\)` `\(H_{a}:Med_{d} \neq 0\\H_{a}:Med_{d} \geq 0\\H_{a}:Med_{d} \leq 0\)` 3. Se hace un *ranking* de las diferencias entre las muestras, no de las observaciones individuales. 4. Se calcula la suma de los *rankings* tanto positivos (`\(R_{i}^{+}\)`) como negativos (`\(R_{i}^{-}\)`). El estadístico de prueba `\(T\)` será el mínimo entre ambos: `\(T=min(R_{i}^{+},R_{i}^{-})\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Para este ejemplo usaremos los datos de [Fuller y col. (2003)](https://doi.org/10.1242/jeb.00230) sobre la variabilidad de la temperatura arterial y cerebral de avestruces: <div class="img-container"> <img src="data:image/png;base64,#img/fuller2003_table1.png" style="border: 1px black solid;"/> </div> En este caso, tenemos `\(n=6\)` avestruces, a cada una de las cuales se les midió la temperatura arterial y cerebral, durante un período de 24 horas. **Contexto**: Las avestruces viven en entornos cálidos. Se sabe que los mamíferos que viven en entornos similares poseen mencanismos para regular la temperatura cerebral en relación con la corporal. Se desea saber si las avestruces pueden hacer lo mismo. --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Planteamos las hipótesis: `\(H_{0}:Med_{d}=0\\H_{a}:Med_{d} \leq 0\)` O alternativamente: `\(H_{0}:Med_{\text{Cerebral}}-Med_{\text{Arterial}}=0\\H_{a}:Med_{\text{Cerebral}}-Med_{\text{Arterial}} \leq 0\)` Calculamos las diferencias entre temperaturas: ``` ## [1] 0.81 0.76 0.93 0.16 0.47 0.76 ``` Ordenamos las diferencias de forma ascendente: ``` ## [1] 0.16 0.47 0.76 0.76 0.81 0.93 ``` Con esto, obtenemos el siguiente *ranking*: ``` ## [1] 1.0 2.0 3.5 3.5 5.0 6.0 ``` Como solo hay valores positivos, no hace falta hacer asignar signos a los *rankings*. --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Para una aproximación normal, calculamos la suma de los *rankings* y de sus cuadrados: `\(\sum\limits_{i=1}^{6}R_{i}=1+2+3.5+3.5+5+6=21\\ \sum\limits_{i=1}^{6}R_{i}^{2}=1+4+12.25+12.25+25+36=90.5\)` Y luego calculamos el estadístico de prueba `\(T\)`: `\(T=\frac{\sum\limits_{i=1}^{6}R_{i}}{\sqrt{\sum\limits_{i=1}^{6}R_{i}^{2}}}=\frac{21}{\sqrt{90.5}}=2.2075\)` Lo comparamos contra un valor de `\(Z_{\text{crítico}}\)` de -1.64: `\(2.2075 \leq -1.64\)` ❌ Por lo tanto, tenemos suficiente evidencia para aceptar `\(H_{0}\)`, y concluimos diciendo no hay diferencia en la temperatura arterial y cerebral de las avestruces. --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Pero ya que `\(n<25\)`, buscamos la suma de los *rankings* positivos (`\(R_{i}^{+}\)`) y negativos (`\(R_{i}^{-}\)`): `\(\sum\limits_{i=1}^{6}R_{i}^{+}=21\\\sum\limits_{i=1}^{6}R_{i}^{-}=0\)` De esta manera, el estadístico de prueba `\(T\)` es: `\(T=min(R_{i}^{+},R_{i}^{-})=0\)` Buscamos el valor de `\(T_{\text{crítico}}\)` en la [tabla de Wilcoxon de rangos signados](https://real-statistics.com/statistics-tables/wilcoxon-signed-ranks-table/) para un valor de `\(\alpha=0.05\)` y `\(n=6\)`, el cual es: `\(T_{\text{crítico}}=-2\)` Luego, contrastamos ambos valores: `\(0 \leq -2\)` ❌ Por lo tanto, no tenemos suficiente evidencia para aceptar `\(H_{0}\)`, y concluimos lo mismo de antes. --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo También se puede hacer la prueba en R: ``` ## ## Asymptotic Wilcoxon-Pratt Signed-Rank Test ## ## data: y by x (pos, neg) ## stratified by block ## Z = 2.2075, p-value = 0.02728 ## alternative hypothesis: true mu is not equal to 0 ``` Y en Excel: <div class="img-container"> <img src="data:image/png;base64,#img/wilcoxon_pareado_excel.png" style="border: 1px black solid;"/> </div> --- class: justify, animate__animated, animate__fadeIn ## Prueba de Kruskal-Wallis .pull-left[ **1** Se plantean las hipótesis: ***H0: Las medianas de todos los grupos son similares.*** ***Ha: Al menos uno de los grupos posee una mediana distinta de las otras.*** **2** Se unen todos los datos y se ordenan de forma ascendente, identificando a qué grupo pertenecen. **3** Se hace un *ranking* de los datos. Si hay empates (valores repetidos), se calcula la posición promedio. **4** Se calcula la suma de los *rankings* correspondientes a cada grupo (`\(R_{j}\)`). **5** Se calcula el estadístico de prueba `\(H\)`: `\(H=\left[\frac{12}{n(n+1)}\sum\limits_{j=1}^{k}\frac{R_{j}^{2}}{n_{j}}\right]-3(n+1)\)` donde `\(k\)` es el número de grupos, `\(n_{j}\)` es el tamaño del grupo `\(j\)` y `\(n\)` es el número de observaciones totales. ] .pull-right[ Si el número de muestras es pequeño o hay muchos empates, se utiliza el estadístico `\(H'\)`: `\(H'=\frac{H}{1-\frac{1}{n^{3}-n}\sum\limits_{i=1}^{k}\left(f_{i}^{3}-f_{i}\right)}\)` siendo `\(k\)`, en este caso, el número de grupos con empates, y `\(f\)` el número de empates del grupo `\(i\)`. **6** Se contrasta el valor de `\(H\)` (o `\(H'\)`) contra un valor crítico de `\(\chi^{2}\)` con `\(k-1\)` grados de libertad y el valor de `\(\alpha\)` correspondiente (por lo general 0.05): `\(H \geq \chi_{\alpha;\: k-1}^{2}\)` Si se cumple, hay al menos una diferencia en mediana en uno de los grupos respecto al resto. Si es ese el caso, se procede con una prueba *post hoc* de Dunn. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba *post hoc* de Dunn .pull-left[ **1** Se plantean las hipótesis: ***H0: Las medianas de ambos grupos son similares.*** ***Ha: Las medianas de ambos grupos difieren.*** **2** Se calculan los promedios de los *rankings* de cada grupo: `\(\bar{R}_{j}=\frac{R_{j}}{n_{j}}\)` **3** Se calcula el error estándar entre cada par de grupos a comparar: `\(SE=\sqrt{\frac{n(n+1)}{12}\left(\frac{1}{n_{i}}+\frac{1}{n_{j}}\right)}\)` Si hay muchos empates, se utiliza la forma corregida del error estándar: `\(SE=\sqrt{\left(\frac{n(n+1)}{12}-\frac{\sum\left(f^{3}-f\right)}{12(n-1)}\right)\left(\frac{1}{n_{i}}+\frac{1}{n_{j}}\right)}\)` ] .pull-right[ donde `\(f\)` es el número de empates. **4** Se calcula el estadístico `\(Z\)`: `\(Z=\frac{|\bar{R}_{i}-\bar{R}_{j}|}{SE}\)` **5** Los valores de `\(Z\)` se contrastan contra un `\(Z_{\text{crítico}}\)` de `\(\alpha/2\)`: `\(Z \geq Z_{\frac{\alpha}{2}}\)` Si se cumple, no hay suficiente evidencia para aceptar `\(H_{0}\)`, y se dice que el par de grupos que se están comparando poseen medianas distintas. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Kruskal-Wallis - Ejemplo Usaremos los datos del peso total de abulones separados por sexo, utilizados en el ANOVA. <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Prueba de Kruskal-Wallis - Ejemplo .pull-left[ Se tienen 15 observaciones por grupo: ``` ## Macho Hembra Infante ## 1 0.9440 1.7730 0.3535 ## 2 1.2700 0.2070 0.1920 ## 3 0.6565 1.6840 0.2260 ## 4 1.3745 1.0770 0.2005 ## 5 0.6295 1.4355 0.5130 ## 6 0.9325 1.5660 0.2770 ## 7 2.0885 0.9775 0.1375 ## 8 1.4275 0.8435 0.5910 ## 9 2.1400 2.1030 0.7045 ## 10 0.7720 0.3840 0.3200 ## 11 0.1700 1.0905 0.2710 ## 12 0.5230 0.7760 0.8025 ## 13 0.5150 0.5755 0.3060 ## 14 1.0270 1.7190 0.2050 ## 15 1.0240 1.0325 0.2085 ``` ] .pull-right[ De los cuales se obtienen los siguientes *rankings*: ``` ## Macho Hembra Infante ## 1 2 6 1 ## 2 16 14 3 ## 3 17 18 4 ## 4 20 24 5 ## 5 21 26 7 ## 6 23 29 8 ## 7 27 32 9 ## 8 28 33 10 ## 9 30 34 11 ## 10 31 38 12 ## 11 35 39 13 ## 12 36 40 15 ## 13 37 41 19 ## 14 43 42 22 ## 15 45 44 25 ``` Ahora, calculamos la suma y el promedio de los *rankings* para cada grupo: ``` ## sex suma_R promedio_R ## 1 Macho 411 27.40000 ## 2 Hembra 460 30.66667 ## 3 Infante 164 10.93333 ``` ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Kruskal-Wallis - Ejemplo Se calcula el estadístico de prueba `\(H\)`: `\(H=\left[\left(\frac{12}{45(45+1)}\right)\left(\frac{411^{2}}{15}+\frac{460^{2}}{15}+\frac{164^{2}}{15}\right)\right]-3(45+1)=19.456\)` Este valor se compara contra un `\(\chi^{2}_{\text{crítico}}\)` con 2 grados de libertad y un `\(\alpha=0.05\)`, cuyo valor es 5.991: `\(19.456 \geq 5.991\)` ✅ Por lo tanto, no hay suficiente evidencia para aceptar `\(H_{0}\)`. Se concluye diciendo que la mediana de al menos uno de los grupos difiere. Ahora hay que hacer una prueba *post hoc* de Dunn... --- class: justify, animate__animated, animate__fadeIn ## Prueba de Kruskal-Wallis - Ejemplo #### Prueba *post hoc* de Dunn .pull-left[ Se calculan las diferencias entre cada par de promedios: `\(\text{Hembra - Macho: } 3.2667\\ \text{Infante - Macho: } -16.4667\\ \text{Infante - Hembra: } -19.7333\)` Se calcula el error estándar, el cual es el mismo para todos: `\(SE=\sqrt{\frac{45(45+1)}{12}\left(\frac{1}{15}+\frac{1}{15}\right)}=4.7958\)` Ahora, se calcula el estadístico de prueba `\(Z\)` para cada comparación: `\(\text{Hembra - Macho: } 0.6811\\ \text{Infante - Macho: } 3.4335\\ \text{Infante - Hembra: } 4.1147\)` ] .pull-right[ Todos estos valores se comparan contra un `\(Z_{\text{crítico}}\)` con un `\(\alpha=0.05\)`, el cual es 1.96: `\(\text{Hembra - Macho: } 0.6811 \geq 1.96\)` ❌ `\(\text{Infante - Macho: } 3.4335 \geq 1.96\)` ✅ `\(\text{Infante - Hembra: } 4.1147 \geq 1.96\)` ✅ Por lo tanto, la diferencia en medianas está entre **Infante - Macho** e **Infante - Hembra**. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Kruskal-Wallis - Ejemplo También podemos hacer la prueba en R: ``` ## Kruskal-Wallis rank sum test ## ## data: x and group ## Kruskal-Wallis chi-squared = 19.4558, df = 2, p-value = 0 ## ## ## Comparison of x by group ## (No adjustment) ## Col Mean-| ## Row Mean | Hembra Infante ## ---------+---------------------- ## Infante | 4.114684 ## | 0.0000* ## | ## Macho | 0.681147 -3.433537 ## | 0.4958 0.0006* ## ## alpha = 0.05 ## Reject Ho if p <= alpha ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Kruskal-Wallis - Ejemplo En Excel también: <div class="img-container"> <img src="data:image/png;base64,#img/kw_excel.png" style="border: 1px black solid;"/> </div> <br/> <div class="img-container"> <img src="data:image/png;base64,#img/dunn_excel.png" style="border: 1px black solid;"/> </div> --- class: justify, animate__animated, animate__fadeIn ## Supuestos clave para pruebas no paramétricas <br/> |Prueba de suma de rangos de Wilcoxon de una sola muestra|Prueba de Mann-Whitney-Wilcoxon para muestras independientes|Prueba de Wilcoxon para rangos signados|Prueba de Kruskal-Wallis| |:---|:---|:---|:---| |1. La variable de interés es continua. <br><br> 2. Los datos son una muestra aleatoria de una población.|1. Las muestras son independientes y seleccionadas al azar. <br><br> 2. La variable dependiente es ordinal o continua. <br><br> 3. Las distribuciones de las poblaciones de las que provienen las muestras tienen la misma forma (aunque no necesariamente la misma media o mediana).|1. Los datos consisten en pares de observaciones de una muestra aleatoria. <br><br> 2. La variable de interés es continua.|1. Se tienen dos o más muestras independientes seleccionadas al azar. <br><br> 2. La variable dependiente es ordinal o continua. <br><br> 3. Las distribuciones de las poblaciones de las que provienen las muestras tienen formas similares.| --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Regresión lineal ] --- class: justify, animate__animated, animate__fadeIn ## Relación entre dos variables En ocasiones, podemos estar interesados en el vínculo que pudiese existir entre dos variables. La manera más sencilla de ver esto es a través de la correlación y la regresión lineal. La primera mide la asociación entre las dos variables, mientras que la segunda mide de qué forma y cuánto cambia una variable dependiente (o de respuesta o salida) de acuerdo a la independiente (o explicatoria o de entrada). .pull-left[ <div class="img-container"> <img src="data:image/png;base64,#img/correlacion_tipos.png" style="border: 1px black solid;"/> </div> ] .pull-right[ `\(r\)` representa el coeficiente de correlación de Pearson, el cual indica la fuerza de asociación entre dos variables. Cuando hablamos de una población, su parámetro se expresa como `\(\rho\)`. La regresión lineal se escribe de la forma: `\(Y=b_{0}+b_{1}X+\color{red}e\\Y=\beta_{0}+\beta_{1}X+\color{red}\epsilon\)` donde `\(b_{0}\)` es el punto de corte con el eje Y (el valor que toma `\(Y\)` cuando `\(X\)` vale 0), `\(b_{1}\)` es la pendiente de la recta de regresión y `\(e\)` es el error asociado al modelo de regresión. ] --- class: justify, animate__animated, animate__fadeIn ## Relación entre dos variables `\(b_{0}:\text{Punto de corte con el eje Y.}\\b_{1}:\text{Pendiente de la recta.}\\r:\text{Coeficiente de correlación de Pearson.}\)` Para calcular la pendiente de la recta, aplicamos la siguiente fórmula: `\(b_{1}=\frac{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)\left(Y_{i}-\bar{Y}\right)}{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}}=\frac{Cov_{XY}}{s_{X}^{2}}\)` Para calcular el punto de corte por el eje Y, aplicamos la siguiente fórmula: `\(b_{0}=\bar{Y}-b_{1}\bar{X}\)` Por otro, el coeficiente de correlación se expresa de la forma: `\(r=\frac{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)\left(Y_{i}-\bar{Y}\right)}{\sqrt{\left(\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}\right) \left(\sum\limits_{i=1}^{n}\left(Y_{i}-\bar{Y}\right)^{2}\right)}}=\frac{Cov_{XY}}{s_{X}s_{Y}}\)` --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo Vamos a utilizar datos de [Whitman y col. (2004)](https://doi.org/10.1038/nature02395), que relaciona la proporción de la pigmentación de hocicos de leones con su edad: <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo Edad (años): ``` ## [1] 1.1 1.5 1.9 2.2 2.6 3.2 3.2 2.9 2.4 2.1 1.9 1.9 1.9 1.9 2.8 ## [16] 3.6 4.3 3.8 4.2 5.4 5.8 6.0 3.4 4.0 7.3 7.3 7.8 7.1 7.1 13.1 ## [31] 8.8 5.4 ``` Pigmentación (%): ``` ## [1] 0.21 0.14 0.11 0.13 0.12 0.13 0.12 0.18 0.23 0.22 0.20 0.17 0.15 0.27 0.26 ## [16] 0.21 0.30 0.42 0.43 0.59 0.60 0.72 0.29 0.10 0.48 0.44 0.34 0.37 0.34 0.74 ## [31] 0.79 0.51 ``` Primero, vamos a calcular los promedios: `\(\bar{X}=\frac{1.1+1.5+1.9+\dots+5.4}{32}=4.309375 \\ \bar{Y}=\frac{0.21+0.14+0.11+\dots+0.51}{32}=0.3221875\)` Y sus varianzas: `\(s_{X}^{2}=\frac{(1.1-4.309375)^2+(1.5-4.309375)^2+\dots+(5.4-4.309375)^2}{32-1}=7.164103\\s_{Y}^{2}=\frac{(0.21-0.3221875)^{2}+(0.14-0.3221875)^{2}+\dots+(0.51-0.3221875)^{2}}{32-1}=0.03942409\)` --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo También calculamos la covarianza: `\(Cov_{XY}=\frac{(1.1-4.309375 )(0.21-0.3221875)+(1.5-4.309375)(0.14-0.3221875)+\dots+(5.4-4.309375)(0.51-0.3221875)}{32-1}=0.419753\)` Ahora, solo nos falta calcular la pendiente y el punto de corte con el eje Y: `\(b_{1}=\frac{0.419753}{7.164103}=0.05859\\b_{0}=0.3221875-(0.05859)(4.309375)=0.06970\)` Así como el coeficiente de correlación: `\(r=\frac{0.05859115}{\sqrt{(7.164103)(0.03942409)}}=0.7898\)` Por lo tanto, la curva de regresión es: `\(Y=0.06970+0.05859X\)` Con una correlación de: `\(r=0.7898\)` --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo Podemos hacer el camino de la inversa. De esta manera, a partir de un valor de `\(Y\)` dado, podemos saber cuál es su valor de `\(X\)` correspondiente. `\(X=b_{0}^{'}+b_{1}^{'}Y\)` Para el ejemplo anterior, `\(b_{0}^{'}\)` y `\(b_{1}^{'}\)` serían: `\(b_{0}^{'}=0.8790\\b_{1}^{'}=10.6471\)` --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo Por otro lado, para validar que el modelo sea correcto, se puede comprobar la normalidad de sus residuales, los cuales se calculan mediante la fórmula: `\(\text{residuales}=Y_{i}-\hat{Y}_{i}\)` ``` ## [1] 0.07585347 -0.01758299 -0.07101945 -0.06859679 -0.10203325 -0.12718794 ## [7] -0.13718794 -0.05961060 0.01968498 0.02726232 0.01898055 -0.01101945 ## [13] -0.03101945 0.08898055 0.02624852 -0.07062440 -0.02163821 0.12765737 ## [19] 0.11422091 0.20391153 0.19047507 0.29875684 0.02109383 -0.20406086 ## [25] -0.01741166 -0.05741166 -0.18670723 -0.11569343 -0.14569343 -0.09724033 ## [31] 0.20470162 0.12391153 ``` .pull-left[ ``` ## ## Shapiro-Wilk normality test ## ## data: pigmentacion.lm$residuals ## W = 0.9665, p-value = 0.4087 ``` ] .pull-right[ <!-- --> ] --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo Si elevamos el valor de `\(r\)` al cuadrado, obtendremos el **coeficiente de determinación**: `\(r^{2}=R^{2}\)` Este valor nos indica qué proporción de la variable de respuesta `\(Y\)` es explicado por el modelo de regresión. Este también se puede calcular de la forma: `\(R^{2}=\frac{\sum\limits_{i=1}^{n}\left(\hat{Y}_{i}-\bar{Y}\right)^{2}}{\sum\limits_{i=1}^{n}\left(Y_{i}-\bar{Y}\right)^{2}}=\frac{SS_{R}}{SS_{tot}}\)` en donde: `\(\color{red}{\sum\limits_{i=1}^{n}\left(Y_{i}-\bar{Y}\right)^{2}}=\color{red}{\sum\limits_{i=1}^{n}\left(\hat{Y}_{i}-\bar{Y}\right)^{2}}+\sum\limits_{i=1}^{n}\left(Y_{i}-\hat{Y}_{i}\right)^{2}\\\color{red}{SS_{tot}}=\color{red}{SS_{R}}+SS_{res}\)` Del ejemplo anterior: `\(r^{2}=0.7898^{2}=0.6238\)`. Es decir, un 62.38% de los valores de la proporción de la pigmentación son explicados por el modelo. --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo La descomposición de la variabilidad del modelo la podemos expresar como: `\(\sum\limits_{i=1}^{n}\left(Y_{i}-\bar{Y}\right)^{2}=\sum\limits_{i=1}^{n}\left(\hat{Y}_{i}-\bar{Y}\right)^{2}+\sum\limits_{i=1}^{n}\left(Y_{i}-\hat{Y}_{i}\right)^{2}\)` que es similar a: `\(\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n_{j}}\left(X_{ij}-\bar{X}\right)^{2}=\sum\limits_{j=1}^{k}n_{j}\left(\bar{X}_{j}-\bar{X}\right)^{2}+\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n_{j}}\left(X_{ij}-\bar{X}_{j}\right)^{2}\\SS_{tot}=SSB+SSW\)` el cual se utiliza durante el ANOVA. La prueba ANOVA es, de hecho, un modelo lineal. En realidad, la mayoría de las pruebas estadísticas vistas hasta el momento se basan en el modelo lineal generalizado (GLM). --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación y recta de regresión - Ejemplo ANOVA aplicado a la regresión lineal: ``` ## Analysis of Variance Table ## ## Response: proporcion_pigmentacion ## Df Sum Sq Mean Sq F value Pr(>F) ## edad 1 0.76241 0.76241 49.751 7.677e-08 *** ## Residuals 30 0.45974 0.01532 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis para la correlación, pendiente e intersección <br/> |Parámetro|Error estándar|Estadístico de prueba| |:---:|:---:|:---:| |Coeficiente de correlación| `\(SE=\sqrt{\frac{1-r^{2}}{n-2}}\)` | `\(t=\frac{r-\rho}{SE}\)` | |Pendiente| `\(SE=\sqrt{\frac{MSE}{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}}}\)` | `\(t=\frac{b_{1}-\beta_{1}}{SE}\)` | |Intersección| `\(SE=\sqrt{MSE\left(\frac{1}{n}+\frac{\bar{X}^{2}}{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}}\right)}\)` | `\(t=\frac{b_{0}-\beta_{0}}{SE}\)` | Recordar que: `\(MSE=\frac{SS_{res}}{n-2}=\frac{\sum\limits_{i=1}^{n}\left(Y_{i}-\hat{Y}_{i}\right)^{2}}{n-2}\)` Todos los estadísticos de prueba se comparan contra un valor de la distribución *t* de Student crítico con `\(n-2\)` grados de libertad y el valor de `\(\alpha\)` correspondiente (normalmente 0.05). --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis para la correlación, pendiente e intersección **Intervalos de confianza**: - Coeficiente de correlación: `\(r \pm t_{\frac{\alpha}{2};\:n-2}\sqrt{\frac{1-r^{2}}{n-2}}\)` - Pendiente: `\(b_{1} \pm t_{\frac{\alpha}{2};\:n-2}\sqrt{\frac{MSE}{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}}}\)` - Intersección: `\(b_{0} \pm t_{\frac{\alpha}{2};\:n-2} \sqrt{MSE\left(\frac{1}{n}+\frac{\bar{X}^{2}}{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^{2}}\right)}\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis para la correlación, pendiente e intersección Prueba de hipótesis de la intersección y de la pendiente ``` ## ## Call: ## lm(formula = proporcion_pigmentacion ~ edad, data = pigmentacion) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.20406 -0.07758 -0.01750 0.07913 0.29876 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 0.069696 0.041956 1.661 0.107 ## edad 0.058591 0.008307 7.053 7.68e-08 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.1238 on 30 degrees of freedom ## Multiple R-squared: 0.6238, Adjusted R-squared: 0.6113 ## F-statistic: 49.75 on 1 and 30 DF, p-value: 7.677e-08 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis para la correlación, pendiente e intersección Prueba de hipótesis de la correlación e intervalo de confianza: ``` ## ## Pearson's product-moment correlation ## ## data: pigmentacion$edad and pigmentacion$proporcion_pigmentacion ## t = 7.0534, df = 30, p-value = 7.677e-08 ## alternative hypothesis: true correlation is not equal to 0 ## 95 percent confidence interval: ## 0.6088022 0.8926721 ## sample estimates: ## cor ## 0.7898272 ``` Intervalo de confianza de la intersección y la pendiente: ``` ## 2.5 % 97.5 % ## (Intercept) -0.01598977 0.15538230 ## edad 0.04162643 0.07555588 ``` --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación por rangos de Spearman .pull-left[ - No requiere que la relación sea lineal. - Funciona con datos ordinales además de datos continuos. - Menos sensible a valores atípicos. - Captura relaciones monotónicas, aunque no sean lineales. - No exige normalidad en las variables. El coeficiente de correlación de Spearman se calcula como: `\(r=1-\frac{6\sum\limits_{i=1}^{n}d_{i}^{2}}{n\left(n^{2}-1\right)}\)` donde `\(d_{i}\)` es la diferencia entre los rangos de ambas variables. ] .pull-right[ **¿Cómo se calcula?** 1. Se ordenan los datos de `\(X\)` y de `\(Y\)` en *rankings* separados. 2. Se calcula la diferencia entre los *rankings*: `\(d_{i}=R_{X}-R_{Y}\)`. 3. Las diferencias se elevan al cuadrado y se suman. 4. Se calcula el coeficiente de correlación con la fórmula descrita anteriormente. Si hay empates, se calcula el coeficiente de correlación de Pearson utilizando los *rankings* en lugar de las observaciones directas. ] --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación por rangos de Spearman - Ejemplo Del ejemplo anterior: **Edad**: ``` ## [1] 1.0 2.0 5.0 5.0 5.0 5.0 5.0 8.0 9.0 10.0 11.0 12.0 13.0 14.5 14.5 ## [16] 16.0 17.0 18.0 19.0 20.0 21.0 22.5 22.5 24.0 25.0 26.5 26.5 28.5 28.5 30.0 ## [31] 31.0 32.0 ``` **Pigmentación**: ``` ## [1] 12.5 7.0 2.0 8.0 9.0 11.0 17.0 14.0 5.5 15.0 3.5 16.0 10.0 3.5 5.5 ## [16] 18.0 12.5 23.0 1.0 24.0 19.0 27.0 28.0 29.0 30.0 20.5 22.0 25.0 26.0 20.5 ## [31] 32.0 31.0 ``` Su diferencia: ``` ## [1] -11.5 -5.0 3.0 -3.0 -4.0 -6.0 -12.0 -6.0 3.5 -5.0 7.5 -4.0 ## [13] 3.0 11.0 9.0 -2.0 4.5 -5.0 18.0 -4.0 2.0 -4.5 -5.5 -5.0 ## [25] -5.0 6.0 4.5 3.5 2.5 9.5 -1.0 1.0 ``` Lo elevamos al cuadrado: ``` ## [1] 132.25 25.00 9.00 9.00 16.00 36.00 144.00 36.00 12.25 25.00 ## [11] 56.25 16.00 9.00 121.00 81.00 4.00 20.25 25.00 324.00 16.00 ## [21] 4.00 20.25 30.25 25.00 25.00 36.00 20.25 12.25 6.25 90.25 ## [31] 1.00 1.00 ``` --- class: justify, animate__animated, animate__fadeIn ## Coeficiente de correlación por rangos de Spearman - Ejemplo Sumamos los cuadrados de las diferencias, lo cual nos da: `\(\sum\limits_{i=1}^{32}d_{i}=132.25+25+9+\dots+1=1388.5\)` Así: `\(r=1-\frac{6\left(1388.5\right)}{32\left(32^{2}-1\right)}=0.7455\)` Sin embargo, como hay empates, debería calcularse el coeficiente de correlación de Spearman con los *rankings*: `\(r=\frac{Cov_{R_{X}R_{Y}}}{s_{R_{X}}s_{R_{Y}}}=\frac{65.3790}{(9.3602)(9.3774)}=0.7448\)` --- class: justify, animate__animated, animate__fadeIn ## Transformación de variables .pull-left[ <!-- --> ] .pull-right[ **Pearson**: ``` ## [1] 0.7201441 ``` **Spearman**: ``` ## [1] 0.8937481 ``` Los datos no poseen una tendencia lineal. En este caso, el coeficiente de correlación de Spearman es una mejor opción para expresar la correlación entre las variables. También se podría optar por transformar las variables (por ejemplo, aplicar la función `\(log_{10}\)` a ambas variables), y recalcular el valor de correlación de Pearson. ] --- class: justify, animate__animated, animate__fadeIn ## Transformación de variables .pull-left[ <!-- --> ] .pull-right[ **Pearson**: ``` ## [1] 0.8987198 ``` **Spearman**: ``` ## [1] 0.8937481 ``` El coeficiente de correlación de Spearman tiene el mismo valor de antes. ¿Por qué? ] --- class: justify, animate__animated, animate__fadeIn ## Precauciones a tener en cuenta con la regresión lineal <br/> | Característica | Descripción | |:---|:---| | Linealidad | Asegurarse de que la relación entre las variables sea lineal. | | Independencia | Verificar que las observaciones sean independientes entre sí. | | Homoscedasticidad | Comprobar que la varianza de los errores sea constante a lo largo de todos los niveles de la variable independiente. | | Normalidad de los errores | Los residuos deben seguir una distribución normal para validar inferencias estadísticas. | | Multicolinealidad | Evitar que las variables independientes estén altamente correlacionadas entre sí. | | Outliers | Identificar y evaluar la influencia de los valores atípicos que pueden distorsionar los resultados. | | Tamaño de muestra | Asegurarse de que el tamaño de la muestra sea suficiente para obtener resultados confiables. | | Correlación no implica causalidad | El hecho de que dos o más variables tengan una alta correlación no implica necesariamente que están relacionadas entre sí. | --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Bootstrapping ] --- class: justify, animate__animated, animate__fadeIn ## ¿Qué es el bootstrapping? Según el diccionario de Cambridge: <div class="img-container"> <img src="data:image/png;base64,#img/bootstrap_significado.png"/> </div> En estadística, el [bootstrapping](https://doi.org/10.1214/aos/1176344552) es una técnica de remuestreo, introducida por Bradley Efron en 1979. Es utilizada para estimar la distribución de un estadístico (como el promedio, la varianza, la mediana, la pendiente, etc.) muestreando **con reemplazo** varias veces de una muestra obtenida de la población. De esta manera, se aprovecha una cantidad de datos reducida para hacer inferencias sobre los estimadores. Así como usamos un calzador que nos ayuda a ponernos el calzado, el bootstrapping nos ayuda a extraer más información de los datos ya existentes sin la necesidad de datos adicionales. --- class: justify, animate__animated, animate__fadeIn ## Pasos para realizar un bootstrapping <div class="img-container"> <img src="data:image/png;base64,#img/illustration_bootstrap.jpg"/> </div> 1. Tomar una muestra aleatoria de una población. 2. Tomar muestras aleatorias con reemplazo de la muestra (remuestreo). 3. Calcular el estadístico de interés a partir de cada remuestreo. 4. Visualizar la distribución del estadístico. --- class: justify, animate__animated, animate__fadeIn ## Pasos para realizar un bootstrapping <br/> <div class="img-container"> <iframe src="https://seeing-theory.brown.edu/frequentist-inference/es.html#section3" width="1000" height="500"></iframe> </div> --- class: justify, animate__animated, animate__fadeIn ## Intervalo de confianza con bootstrap Para calcular un intervalo de confianza utilizando la técnica de bootstrap, se siguen estos pasos: 1. Se comienza con una muestra original de datos que se desea analizar. 2. Se realizan múltiples remuestreos (generalmente entre 1000 y 10000) de la muestra original. Cada remuestreo debe ser del mismo tamaño que la muestra original, y se realiza con reemplazo. 3. Para cada remuestreo, se calcula el estadístico de interés. 4. Se almacenan todas las estadísticas calculadas de los remuestreos para crear una distribución empírica del estadístico. 5. Se determina el intervalo de confianza a partir de la distribución de los estadísticos. Por ejemplo, para un intervalo de confianza del 95%, se selecciona el percentil 2.5 (`\(P_{2.5})\)` y el percentil 97.5 (`\(P_{97.5})\)` de la distribución. Este método permite estimar la variabilidad de la estadística y construir intervalos de confianza sin asumir una distribución específica de los datos. --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis y cálculo del p-valor (diferencia de medias) Para realizar una prueba de hipótesis con bootstrap y calcular el p-valor correspondiente, se siguen estos pasos: **Diferencia de medias** **1**. Se plantean las hipótesis estadísticas: `\(H_{0}: \: \mu_{1}-\mu_{2}=0\)` `\(H_{a}: \: \mu_{1}-\mu_{2} > 0\\H_{a}: \: \mu_{1}-\mu_{2} < 0\\H_{a}: \: \mu_{1}-\mu_{2} \neq 0\)` **2**. A continuación, se calcula la diferencia de medias de las dos muestras observadas. Este será el estadístico de prueba observado: `\(T_{0}=\bar{X}_{1}-\bar{X}_{2}\)` **3**. Si ambas muestras poseen varianzas iguales (`\(\sigma_{1}^{2}=\sigma_{2}^{2}\)`), ambas se agrupan en una sola muestra, cuyo tamaño es `\(n_{1}+n_{2}\)`. Si estas poseen varianzas diferentes (`\(\sigma_{1}^{2} \neq \sigma_{2}^{2}\)`), entonces se resta de cada muestra su media correspondiente (`\(X_{1i}-\bar{X}_{1}\)` y `\(X_{2i}-\bar{X}_{2}\)`). --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis y cálculo del p-valor (diferencia de medias) **3**. Se hace el remuestreo, bien con la muestra agrupada (varianzas iguales) o con las muestras centradas en 0 (varianzas diferentes), según la cantidad de veces indicada por `\(B\)`, y se calcula en cada oportunidad la diferencia de promedios. **4**. Ahora, se obtiene el p-valor calculando la proporción de estimadores que superen el umbral de la diferencia: ---- Si `\(H_{a}: \: \mu - \mu_{0}>0\)`: `\(P\left(T \geq T_{0}|H_{0}\right)=p_{B}=\frac{\text{# de }T_{B} \geq T_{0}}{B}\)` ---- Si `\(H_{a}: \: \mu - \mu_{0}<0\)`: `\(P\left(T \leq T_{0}|H_{0}\right)=p_{B}=\frac{\text{# de }T_{B} \leq T_{0}}{B}\)` ---- Si `\(H_{a}: \: \mu - \mu_{0}\neq0\)`: `\(p_{B}=P\left(T \geq T_{0}|H_{0}\right)+P\left(T \leq -T_{0}|H_{0}\right)\)` ---- **5**. Se elige un valor de `\(\alpha\)` (por lo general 0.05). Si `\(p_{B} \leq \alpha\)`, no hay suficiente evidencia para aceptar `\(H_{0}\)`, y se debe optar por `\(H_{a}\)`. --- class: justify, animate__animated, animate__fadeIn ## Regla del 99 Propuesta por [Boos y Stefanski (2013)](https://doi.org/10.1007/978-1-4614-4818-1), esta regla ofrece un enfoque sobre el número de muestras que se deben tomar para estimar los p-valores. Para ello, se debe tomar un número de muestras que sea uno menos que un múltiplo de 100 (99, 999, 9999, etc.) con tal de mantener la integridad del nivel de significancia. Más concretamente, los posibles p-valores a obtener son múltiplos de `\(1/\left(1+B\right)\)`. Por ejemplo, con `\(B=99\)`, los p-valores del 1 al 10 son: ``` ## [1] 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 ``` Mientras que con `\(B=100\)` son: ``` ## [1] 0.0099 0.0198 0.0297 0.0396 0.0495 0.0594 0.0693 0.0792 0.0891 0.0990 ``` Si trabajamos con un valor de `\(\alpha=0.05\)`, bajo el segundo escenario es imposible un tener un p-valor igual a 0.05, lo que puede generar una ligera imprecisión al determinar la significancia estadística. --- class: justify, animate__animated, animate__fadeIn ## Ventajas y desventajas del bootstrap <br/> |Ventajas|Desventajas| |:---|:---| |No requiere suposiciones sobre la distribución de los datos.|Puede ser computacionalmente intensivo (aunque con las computadoras actuales, esto ya no es una limitante).| |Se puede aplicar a cualquier estadística.| Resultados pueden ser inestables con muestras pequeñas.| |Proporciona intervalos de confianza más precisos en algunos casos.|Puede no funcionar bien con datos altamente sesgados.| --- class: justify, animate__animated, animate__fadeIn ## Intervalo de confianza con bootstrap - Ejemplo Como la aplicación del bootstrapping requiere muchas iteraciones, mostramos aquí un código de ejemplo con los datos de 50 muestras del peso total de abulones: .code[ ``` r # Número de iteraciones y vector para almacenar los promedios B <- 9999 abalone.means <- vector('numeric', B) # Semilla para reproducibilidad de los datos set.seed(123) # Bucle 'for' para realizar el remuestreo for(i in 1:B){ sample.1 <- sample(abalone.muestra, size = length(abalone.muestra), replace = T) abalone.means[i] <- mean(sample.1) } # Gráfico de la distribución del estadístico con su intervalo de confianza al 95% abalone.means %>% as_tibble() %>% ggplot(aes(x = value)) + geom_histogram(bins = 14, fill = color.p[1], color = 'black') + geom_vline(xintercept = quantile(abalone.means, probs = c(0.025, 0.975)), linetype = 'dashed') + geom_vline(aes(xintercept = median(value)), linetype = 'dashed', linewidth = 2) + labs( x = 'Peso total (g)', y = 'Conteo', title = 'Distribución del promedio del peso total de abulones', subtitle = 'Remuestreo por bootstrap' ) + annotate(geom = 'label', x = 0.55, y = 1500, label = paste0('P2.5 = ', round(quantile(abalone.means, probs = c(0.025)), 4))) + annotate(geom = 'label', x = 0.965, y = 1500, label = paste0('P97.5 = ', round(quantile(abalone.means, probs = c(0.975)), 4))) + annotate(geom = 'label', x = 0.75, y = 2700, label = 'Mediana = 0.7502') + theme_minimal() ``` ] --- class: justify, animate__animated, animate__fadeIn ## Intervalo de confianza con bootstrap - Ejemplo Lo cual genera la siguiente distribución: <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis y cálculo del p-valor - Ejemplo En este ejemplo, haremos el cálculo del p-valor para la diferencia de promedios entre las alturas de individuos vegetales de Cerro El Volcán (CV) y el Jardín Botánico de Caracas (JB): .code[ ``` r # Centrar en cero ---- alt.cv.ho <- alt.cv.sample - mean(alt.cv.sample) alt.jb.ho <- alt.jb.sample - mean(alt.jb.sample) # Diferencia de medias ---- diff <- mean(alt.cv.sample) - mean(alt.jb.sample) # Bootstrapping ---- B <- 9999 diff.means <- vector('numeric', B) set.seed(123) for(i in 1:B){ sample.1 <- sample(alt.cv.ho, size = length(alt.cv.ho), replace = T) sample.2 <- sample(alt.jb.ho, size = length(alt.jb.ho), replace = T) diff.means[i] <- mean(sample.1) - mean(sample.2) } # Ver distribución de diferencias de media bajo H0 ---- diff.means %>% as_tibble() %>% ggplot(aes(x = value)) + geom_histogram(bins = 14, fill = color.p[1], color = 'black') + geom_vline(xintercept = c(-diff,diff), linetype = 'dashed') + annotate(geom = 'label', x = diff, y = 1500, label = paste0('X = ', diff)) + annotate(geom = 'label', x = -diff, y = 1500, label = paste0('X = ', -diff)) + annotate(geom = 'label', x = -2, y = 2000, label = paste0('p = ', round(mean(diff.means >= diff) + mean(diff.means <= -diff),4))) + labs( x = 'Diferencia de promedios', y = 'Conteo', title = 'Distribución de diferencia de promedios de las alturas de individuos vegetales', subtitle = 'Cerro El Volcán (CV) y Jardín Botánico de Caracas (JB)' ) + theme_minimal() ``` ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de hipótesis y cálculo del p-valor - Ejemplo <!-- --> --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### ¡Muchas gracias! ]